把字符串“i love china”转换成“china love i”,不能使用新的数组或开辟新的内存c语言代码
时间: 2024-03-07 19:46:32 浏览: 29
可以使用双指针的方法来实现原地字符串反转,然后再对每个单词进行反转即可得到目标字符串。
示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void reverse(char* str, int len) {
int i = 0, j = len - 1;
while (i < j) {
char temp = str[i];
str[i] = str[j];
str[j] = temp;
i++;
j--;
}
}
void reverse_words(char* str) {
int len = strlen(str);
reverse(str, len);
int start = 0, end = 0;
while (end < len) {
while (end < len && str[end] != ' ') {
end++;
}
reverse(str + start, end - start);
start = end + 1;
end++;
}
}
int main() {
char str[] = "i love china";
reverse_words(str);
printf("%s\n", str);
return 0;
}
```
输出结果为:
```
china love i
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)