#include <studio.h> #include <string.h> void inverse(char *s) { int len = strlen(s); for (int i = 0; i < len / 2; ++i) { char temp = s[i]; s[i] = s[len - i - 1]; s[len - i - 1] = temp; }} int main() { char s[100] ; scanf(“%s”,s); inverse(s); printf(“%s”,s); return 0;}要求可以逆序输出有空格的字符串
时间: 2024-01-20 15:03:29 浏览: 134
T-REC-H.263-199603-S!!PDF-E.pdf
您好,可以使用 fgets 函数来读入有空格的字符串,并修改代码如下:
```
#include <stdio.h>
#include <string.h>
void inverse(char *s) {
int len = strlen(s);
for (int i = 0; i < len / 2; ++i) {
char temp = s[i];
s[i] = s[len - i - 1];
s[len - i - 1] = temp;
}
}
int main() {
char s[100];
fgets(s, 100, stdin);
inverse(s);
printf("%s", s);
return 0;
}
```
使用 fgets 函数可以读入含有空格的字符串,但是它会把换行符也读入。如果需要去掉换行符,可以使用如下代码:
```
int len = strlen(s);
if (s[len - 1] == '\n') {
s[len - 1] = '\0';
}
```
在读入字符串后,如果最后一个字符是换行符,则将其替换为字符串结束符。这样就可以去掉换行符了。
阅读全文