以大写形式更改字符串的替换字符

时间:2018-05-16 04:36:44

标签: c string logic

输入:

this is a string 

输出

ThIs Is A sTrInG 

我用来制作这个程序的逻辑非常简单。但它只在一定程度上起作用。

int main()
{
    int i,j;
    char s[100];
    printf("Enter a sentence\n");
    gets(s);

    printf("The sentence now is\n\n");
    i=0;
    j=i;
    while(s[i] != '\0')
    {
        if(j%2==0)
        {
            s[i] = s[i]-32;
        }
        if(s[i] == ' ')
        {
            if(j%2==0)
            {
                s[i] = s[i]-32;
            }
        }
        i++;
        j++;
    }
    puts(s);

}  

对于上述计划,

输入:

this is a string  

输出

ThIs  

我哪里出错了?

1 个答案:

答案 0 :(得分:0)

空格有ASCII码32.所以这些行

if(j%2==0)
{
    s[i] = s[i]-32;
}

将偶数索引空格转换为空字符(零),有效地终止字符串。