void stringNx(char *a) { int len = strlen(a); char temp; int i; for (i = 0; i < len / 2; i++) { temp = a[i]; a[i] = a[len - i - 1]; a[len - i - 1] = temp; } }
时间: 2024-04-05 14:29:09 浏览: 17
这段代码实现了将一个字符串逆序的功能。具体实现方式与我之前给出的代码相同,使用一个循环将字符串的首尾字符对应交换,直到遍历到字符串的中间位置。
值得注意的是,这里的循环变量 `i` 的类型是 `int`,应该在函数开头先进行声明,否则可能会出现编译报错。另外,函数开头也应该包含头文件 `string.h`,否则可能会出现 `strlen` 函数未定义的错误。
如果你有其他问题,欢迎继续提问!
相关问题
修改:#include <stdio.h> #include <string.h> #include <stdlib.h> void reverse(char *str) { int len = strlen(str); char *start = str; char *end = str + len - 1; char temp; while(start < end) { temp = *start; *start = *end; *end = temp; start++; end--; } } int main() { char a[100]; printf("输入句子"); gets(a); puts(a); reverse(a); printf("反转后是:%s",a); }
这段代码存在一些问题,gets函数已经被弃用,应该改用fgets或者scanf等安全的输入函数。此外,在输入字符串时没有限制长度,可能会导致缓冲区溢出。另外,reverse函数没有对空字符串进行处理,可能会导致程序崩溃。以下是修正后的代码:
```
#include <stdio.h>
#include <string.h>
void reverse(char *str) {
if (str == NULL || *str == '\0') { // 处理空字符串
return;
}
int len = strlen(str);
char *start = str;
char *end = str + len - 1;
char temp;
while (start < end) {
temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char a[100];
printf("输入句子:");
fgets(a, sizeof(a), stdin); // 使用fgets函数读取输入
printf("原始字符串是:%s", a);
reverse(a);
printf("反转后是:%s", a);
return 0;
}
```
#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;}要求可以逆序输出有空格的字符串
您好,可以使用 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';
}
```
在读入字符串后,如果最后一个字符是换行符,则将其替换为字符串结束符。这样就可以去掉换行符了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)