【发布时间】:2020-05-24 12:36:23
【问题描述】:
有谁知道为什么变量 s2 没有被打印出来。如果我不使用声明函数,则此代码有效,而只是将整个代码放在 main 中。但是,如果我尝试声明为 int 函数或 void 函数,它不会打印任何内容。我认为这是我不理解的字符串的基本原理。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseOrderString()
{
char s1[100];
char s2[100];
int counter, end, begin = 0;
printf("Type in a string\n");
gets(s1);
while(s1[counter] != '\0')
{
counter++;
}
end = counter-1;
for (begin = 0; begin < counter; begin++)
{
s2[begin] = s1[end];
end--;
}
s2[begin] = '\0';
return s2;
}
int main()
{
printf("%s", reverseOrderString());
return 0;
}
【问题讨论】:
-
您的函数返回
int,但您返回的是char数组。 -
计数器也未初始化。
-
而
gets非常不安全 -
而你正在返回一个局部变量......这个小代码sn-p中的问题太多了。
-
为什么要加入
stdlib.h?