#include<stdio.h>
#include<string.h>
int main(void)
{
int N,index;
char ss[30];
N=strlen(ss);
for(index=0;index<=N;index++)
{
scanf(“%c”,&ss[index]);
}
for(index=N;index>=0;index–)
{
printf(“%c”,ss[index]);
}
printf(“\n”);
return 0;
}
#include<string.h>
int main(void)
{
int N,index;
char ss[30];
N=strlen(ss);
for(index=0;index<=N;index++)
{
scanf(“%c”,&ss[index]);
}
for(index=N;index>=0;index–)
{
printf(“%c”,ss[index]);
}
printf(“\n”);
return 0;
}
解决方案
40
strlen 获取的是以\0结尾的字符串长度
你的ss还没有初始化就使用strlen是未定义行为
你的ss还没有初始化就使用strlen是未定义行为
40
首先。你的ss数组没有初始化。那个strlen的使用是未定义的。其次。%c会把回车也读入。你可以直接用%s直接输入字符串(更简单)。然后在循环输出。
望采纳。
望采纳。
40
#include<stdio.h> #include<string.h> int main(void) { int N,index; char ss[30] = {0}; index=0; N = 30; for(;index<=N;index++) { scanf("%c",&ss[index]); if(ss[index] == "\n") break; } printf("%c", "\n"); for(int i=index-1;i>=0;i--) { printf("%c",ss[i]); } printf("\n"); return 0; }