如何在C中获取数组的下一个元素?

如何在C中获取数组的下一个元素?,c,C,我是C语言的新手,我必须为我在大学的硬件作业创建一个音译。在波兰语中,椅子上的声音[tsh]由两个字母表示:“cz”。我必须创建一个程序,将每个“cz”变成4(F.e.zaskoczony=zasko4ony)。我有一个char数组(在程序开始时定义),我可以得到“c”并将其更改为我想要的任何内容,但我很难检查“z”,因为我无法在字符串数组中获得+1元素 我试着把I+1放在数组的括号中,试着使用一个变量,但似乎没有任何效果 while(i<100){ intText[i] = s

我是C语言的新手,我必须为我在大学的硬件作业创建一个音译。在波兰语中,椅子上的声音[tsh]由两个字母表示:“cz”。我必须创建一个程序,将每个“cz”变成4(F.e.zaskoczony=zasko4ony)。我有一个char数组(在程序开始时定义),我可以得到“c”并将其更改为我想要的任何内容,但我很难检查“z”,因为我无法在字符串数组中获得+1元素

我试着把I+1放在数组的括号中,试着使用一个变量,但似乎没有任何效果

while(i<100){

    intText[i] = someString[i];

    if(intText[i] == 'c'){
        int increasedI=i+1;
        printf(" %d", increasedI);

        if(intText[increasedI] == 'z'){
            printf("4");
        }
    }else{
        putchar(intText[i]);    
    }
    i++;
}

while(i)
如何在C中获取数组的下一个元素

someString[i+1]


OP代码的一个问题是,在使用它之前,它没有推进
i
一个额外的1,也没有填充
intText[increasedI]

if(intText[i] == 'c'){
    int increasedI=i+1;
    printf(" %d", increasedI);

    // if(intText[increasedI] == 'z'){
    if(someString[increasedI] == 'z'){
        printf("4");
    }
    i++;  //add
 ....
 i++;
当到达空字符时,字符串处理也应该停止,而不是
i==100

// while(i<100){
while(someString[i]){

谢谢大家的建议,帮助我找到了自己的解决方案。这是符合我期望的代码,看起来很简单

int main()
{
    char someString[100] = "cenczetkczacczka";
    int i = 0;
    while(someString[i] != '\0'){
        if(someString[i] == 'c' && someString[i + 1] == 'z'){
            printf("4");
            i++;
        }else{
            putchar(someString[i]);
        }
        i++;
    }
    return 0;
}


请仔细考虑一下逻辑……如果字符不是
'c'
,则按原样打印。否则,请检查下一个字符(在索引
i+1
处)是否是
'z'
,如果是,则将
i
增加1并打印
4
。否则(如果索引
i+1
处的字符不是
'z'
)然后打印字符
'c'
。有帮助吗?你需要在头脑中回答一个简单的问题。
i
是否计算输入字符或输出字符?作为一般建议,尝试用人类语言进行描述。严格遵守这些步骤,同时避免猜测(计算机也不会)。如果这给您提供了正确的结果,请开始对其进行编码。
int main()
{
    char someString[100] = "cenczetkczacczka";
    int i = 0;
    while(someString[i] != '\0'){
        if(someString[i] == 'c' && someString[i + 1] == 'z'){
            printf("4");
            i++;
        }else{
            putchar(someString[i]);
        }
        i++;
    }
    return 0;
}