将一句话的单词进行倒置,标点符号不倒置。
时间: 2024-06-12 14:09:05 浏览: 68
将一句话中的单词进行倒置,标点符号不倒置的方法如下:
1. 定义一个函数,输入参数为一句话的字符串。
2. 创建一个空字符串,用于存储倒置后的结果。
3. 使用循环遍历输入字符串中的每个字符。
4. 当遇到空格时,将已经遍历的单词添加到结果字符串的开头,并在单词后面加上一个空格。
5. 当遇到标点符号时,直接将标点符号添加到结果字符串的开头。
6. 最后返回结果字符串,即为倒置后的字符串。
代码示例:
```c
#include <stdio.h>
#include <string.h>
void reverseWords(char *str) {
int length = strlen(str);
char result[length + 1];
memset(result, 0, sizeof(result));
int start = 0;
int end = 0;
for (int i = 0; i < length; i++) {
if (str[i] == ' ') {
for (int j = end - 1; j >= start; j--) {
result[strlen(result)] = str[j];
}
result[strlen(result)] = ' ';
start = i + 1;
} else if (str[i] == '.' || str[i] == ',' || str[i] == '!' || str[i] == '?') {
result[strlen(result)] = str[i];
}
end++;
}
for (int j = end - 1; j >= start; j--) {
result[strlen(result)] = str[j];
}
strcpy(str, result);
}
int main() {
char sentence[] = "I come from tianjin.";
printf("原句: %s\n", sentence);
reverseWords(sentence);
printf("倒置后的句子: %s\n", sentence);
return 0;
}
```
阅读全文