在c中使用循环打印字符串的所有方法是什么?


char testArray[][50] = {"Mango", "Strawberry", "Bannana", "Cherry"};
for(int x = 0; x<testArray; x++){
printf("%s", testArray[x]);
}

我试图找到所有的方法,我可以在c语言中使用循环打印字符串。任何帮助都将非常感激。谢谢你。

for循环中的条件不正确。相比有一个整数的指针。

for(int x = 0; x<testArray; x++){
^^^^^^^^^^^

printf的调用也会调用未定义的行为,因为使用了错误的转换说明符来输出字符串。

printf("%c", testArray[x]);
^^^^ 

你可以写

char testArray[][50] = {"Mango", "Strawberry", "Bannana", "Cherry"};
const size_t N = sizeof( testArray ) / sizeof( *testArray );
for ( size_t i = 0; i < N; i++ )
{
printf( "%sn", testArray[i] ); // or just puts( testArray[i] );
}

如果需要指针:

#define TSIZE(x)  (sizeof(x) / sizeof((x)[0]))
int main(void) {
char testArray[][50] = {"Mango", "Strawberry", "Bannana", "Cherry"};
for(char (*x)[50] = testArray; x < &testArray[TSIZE(testArray)]; x++){
printf("%sn", *x);
}
}

或者你想使用%c格式:

int main(void) {
char testArray[][50] = {"Mango", "Strawberry", "Bannana", "Cherry"};
for(char (*x)[50] = testArray; x < &testArray[TSIZE(testArray)]; x++)
{
char *p = x[0];
while(*p)
printf("%c", *p++);
printf("n");
}
}

相关内容

  • 没有找到相关文章

最新更新