如何在C中打印字符串中的其他字符?
用C语言从字符串中每隔一个字符打印一次的最简单方法?我已经尝试使用如何在C中打印字符串中的其他字符?,c,string,C,String,用C语言从字符串中每隔一个字符打印一次的最简单方法?我已经尝试使用 int main (void) for(int i = 0; i < strlen(input); i+=2) { word[i] += input[i]; } int main(无效) 对于(int i=0;i
int main (void)
for(int i = 0; i < strlen(input); i+=2)
{
word[i] += input[i];
}
int main(无效)
对于(int i=0;i
为什么不在循环中打印它呢
for(int i = 0; i < strlen(input); i+=2)
{
putchar(input[i]);
}
输出:
hlowrd
2nd option
hlowrd
将strlen(p)移出循环,否则每次迭代都会一次又一次地调用它。你有其他语言的背景,不是吗?我建议,例如通过以下步骤:1)在C中查找HelloWorld并使其运行2)将其更改为逐字符打印。3) 更改为将位置增加2,而不是1@phuclv理论上是的。在过去,编译器就是这么做的。现在,编译器应该能够分辨出,
输入
没有被循环更改,循环中没有指针是别名,因此编译器只需要对strlen表达式求值一次。@Lundin否,并且仍然在每次调用时再次调用该函数loop@Lundin,这仅适用于某些已知函数。否则编译器无法知道返回值是否会在每次迭代中更改。值得注意的是,目标字符串大小限制为32字节,这意味着大于63个字符的输入缓冲区将使程序崩溃。还要注意,strlen(p)在每个for循环中都被计算,实际上是常数。因此,最好在for循环之前获取该值,并将其用作常量。
hlowrd
2nd option
hlowrd