#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;
}