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