题目描述
将一句话的单词进行倒置,标点不倒置。比如 “I like beijing.”,经过处理后变为:“beijing. like I”。
字符串长度不超过100。
链接地址:倒置字符串
代码:
#include <stdio.h>
#include <string.h>
#include <assert.h>
void reverse (char * str , int left , int right) {
assert(str != NULL);
while (left < right) {
char temp = str[left];
str[left] = str[right];
str[right] = temp;
left++;
right--;
}
}
int main() {
char str[100] = {0};
gets(str);
reverse(str , 0 , strlen(str) - 1);
int start = 0;
int end = 0;
while (str[end]) {
if (str[end] != ' ') {
end++;
}
else {
reverse(str , start , end - 1);
end += 1;
start = end;
}
}
reverse(str , start , end - 1);
puts(str);
return 0;
}
该程序使用C语言编写,功能是将输入的句子中每个单词的顺序倒置,但保留原句的标点符号位置不变。它首先反转整个字符串,然后逐个找到单词边界,再对每个单词进行内部反转,最后输出处理后的字符串。


被折叠的 条评论
为什么被折叠?



