在翻转单词后,将单词的替换字母改为大写

时间:2016-05-14 15:43:30

标签: c

输入:班加罗尔

输出: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]);
    }
}
}

1 个答案:

答案 0 :(得分:2)

rchar不是字符串,您不能使用子集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]);
}