C语言: 逆序字符串,词组不逆序,输入的时候可以使用回车。
时间: 2024-02-19 17:59:24 浏览: 63
可以使用C语言中的指针和循环来实现字符串逆序,下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverse_str(char *str) {
int len = strlen(str);
char temp;
for (int i = 0; i < len / 2; i++) {
temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}
int main() {
char str[1000];
printf("请输入字符串:\n");
fgets(str, sizeof(str), stdin); // 使用 fgets 函数输入字符串,可以包含空格和回车
int len = strlen(str);
int start = 0, end = 0;
while (end < len) {
if (str[end] == ' ' || str[end] == '\n') { // 遇到空格或回车时,逆序前面的单词
for (int i = start; i < end; i++) {
printf("%c", str[i]);
}
if (str[end] == '\n') { // 如果是回车,则不需要输出空格
break;
} else { // 否则输出空格
printf(" ");
}
start = end + 1; // 更新下一个单词的起始位置
}
end++;
}
reverse_str(str); // 最后逆序整个字符串
printf("\n逆序后的字符串为:%s\n", str);
return 0;
}
```
在上面的代码中,`reverse_str` 函数实现了字符串逆序,主函数中使用 `fgets` 函数输入字符串,并使用循环遍历字符串中的单词,并将每个单词逆序输出,最后逆序整个字符串并输出。需要注意的是,在输入时使用 `fgets` 函数,而不是 `scanf` 函数,因为前者可以包含空格和回车。
阅读全文