将一句话的单词进行倒置,标点不倒置。比如"like bejing.",经过处理后变为:"bejjing. like !” 用C语言来完成 不要使用#define main函数里用getchar来实现
时间: 2024-01-22 12:18:29 浏览: 74
下面是使用 C 语言实现的代码,可以实现将一句话的单词进行倒置,标点不倒置:
```c
#include <stdio.h>
#include <string.h>
void reverseWords(char *s);
int main() {
char s[] = "like bejing.";
printf("Original string: %s\n", s);
reverseWords(s);
printf("Reversed string: %s\n", s);
return 0;
}
void reverseWords(char *s) {
int len = strlen(s);
int start = 0, end = 0;
for (int i = 0; i <= len; i++) {
if (s[i] == ' ' || s[i] == '\0') {
end = i - 1;
while (start < end) {
char temp = s[start];
s[start] = s[end];
s[end] = temp;
start++;
end--;
}
start = i + 1;
}
}
}
```
代码中,`reverseWords` 函数接收一个字符串指针作为参数,用来对字符串进行单词倒置操作。该函数利用了双指针的方法,遍历整个字符串,找到每个单词的起始和结束位置,然后对单词进行倒置。最后输出倒置后的字符串即可。
阅读全文