c - 在反转单词后将单词的替代字母变为大写

标签 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]);
    }
}
}

最佳答案

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/

相关文章:

c - int 除以 unsigned int 导致翻转

c - 使用 MinGW 64 位在非 UNIX 系统上安装 FFTW 库

c++ - 如果您在 .h 文件中包含某些内容,您是否必须再次包含相同的内容?

c - 在点四叉树上插入特定值时出错

c - execvp 遇到问题

c - 获得无限循环而不是预期的受控迭代

c - 从行中读取单词

c - 这段C代码的bug在哪里

c - 获取已运行进程的子进程ID

c - 我怎样才能再次这样做?在C中