交换字符串的顺序

简介: 当我们想要交换一个字符串的顺序,我们应该怎么做呢,例如“abcdefg”我们要转化为“gfedcba”,那我们来看看下面的代码

当我们想要交换一个字符串的顺序,我们应该怎么做呢,例如“abcdefg”我们要转化为“gfedcba”,那我们来看看下面的代码

 

1. #include<stdio.h>
2. #include<string.h>
3. void exchange(char *str)
4. {
5.     int left=0;
6.     int right=strlen(str)-1;
7.     char c;
8.     while(left<right)
9.     {
10.         c=str[left];
11.         str[left]=str[right];
12.         str[right]=c;
13.         left++;
14.         right--;
15.     }
16. }
17. int main()
18. {
19.    char arr[20]="you are a pig";
20.     exchange(arr);
21.     printf("%s\n",arr);
22.     return 0;
23. }

利用c语言里的库函数,strlen()"头文件:#include<stdio.h>"去完成字符串里的元素进行交换,最后达到字符串交换。其实我们也可以,不用库函数,用一个函数去平替strlen(),这个函数得靠自己实现,他的功能与strlen()差不多,如下

1. #include<stdio.h>
2. int mystrlen(char *str)
3. {
4.     int count=0;
5.     while(*str!='\0')
6.     {
7.         count++;
8.         str++;
9.     }
10.     return count;
11. }
12. void exchange(char *str)
13. {
14.     int left=0;
15.     int right=mystrlen(str)-1;
16.     char c;
17.     while(left<right)
18.     {
19.         c=str[left];
20.         str[left]=str[right];
21.         str[right]=c;
22.         left++;
23.         right--;
24.     }
25. }
26. int main()
27. {
28.    char arr[20]="you are a pig";
29.     exchange(arr);
30.     printf("%s\n",arr);
31.     return 0;
32. }

他们俩的结果都是一样的

01381157-1EC2-48DD-9ACB-20065398A36B.jpeg

相关文章
|
9月前
交换两个数的值的方法(三种)
交换两个数的值的方法(三种)
41 1
|
2月前
|
存储 索引 Python
leetcode-387:字符串中的第一个唯一字符(队列以及堆栈最简单的实现方式)
leetcode-387:字符串中的第一个唯一字符(队列以及堆栈最简单的实现方式)
36 1
|
11月前
不使用第三变量。如何对2个数进行交换
不使用第三变量。如何对2个数进行交换
59 0
|
2月前
|
存储 搜索推荐 Serverless
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
用指针和动态内存分配的方法输入10,2,30, 4,5,按输入顺序逆置排序,输出排序后的元素,即输出5,4,30,2,10
28 0
|
12月前
|
机器学习/深度学习 Cloud Native 安全
1790. 仅执行一次字符串交换能否使两个字符串相等:简单模拟
这是 力扣上的 1790. 仅执行一次字符串交换能否使两个字符串相等 ,难度为 简单。
|
C++
【C/C++】用指针方法对10个整数按由大到小顺序排序
##下面我们将对21 12 45 43 87 897 534 67 90 75这10个数,用下面的程序进行由大到小排序。
355 0
【C/C++】用指针方法对10个整数按由大到小顺序排序
给定一个字符串,能否最多删除一段连续的一段使得剩下的为“2020”
给定一个字符串,能否最多删除一段连续的一段使得剩下的为“2020”
71 0
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
输入一个整形数组,实现一个函数,来调整该数组中数字的顺序//使得数组中所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
117 0
|
Java
Java 题目1:定义一个包含10个元素的数组,对其进行赋值,使每个元素的值等于其下标,然后输出;最后将这个数组倒置(即首尾交换)后输出。
题目:定义一个包含10个元素的数组,对其进行赋值,使每个元素的值等于其下标,然后输出;最后将这个数组倒置(即首尾交换)后输出。
303 0