输入:类加罗尔
输出:eRoLaGnAb
下面是我尝试自己写的代码,但是我无法得到想要的结果
main()
{
int i,j;
char s[10];
printf("input:");
for(j=0;j<2;j++){
scanf("%[^\n]s",&s[j]);}
char r = strrev(s[j]);
for(i=0;i<10;i++)
{
if(i%2==0)
{
printf("\n%s",r[i]);
}
else if(i%2!=0)
{
printf("%s",r[i]);
}
}
}
最佳答案
r
是一个 char
不是字符串,你不能使用子集 r[i]
更改为
char *r = strrev(s);
注意 strrev(s);
而不是 strrev(s[j]);
,或者只调用 strrev(s);
而不是一个中间指针,strrev
将字符串原地反转。
在这部分:
if (i%2==0)
{
printf("\n%s",r[i]);
}
else if (i%2!=0)
{
printf("%s",r[i]);
}
如果 i
可以被 2 整除则不需要再次测试如果 i
不能被 2 整除,应该是:
if (i%2==0)
{
printf("\n%s",r[i]);
}
else
{
printf("%s",r[i]);
}
关于c - 在反转单词后将单词的替代字母变为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228668/