gpt4 book ai didi

c - 仅用一个循环打印数组中 String 的最后一个单词

转载 作者:行者123 更新时间:2023-11-30 19:00:41 25 4
gpt4 key购买 nike

该程序让我摆脱了循环,它向我显示它正在检查NULL尽管它应该继续前进到字符串中的以下字母。

感谢所有的助手

void main()
{
char string[2][10] = { "lior","king" };
int words, letter;

for (words=0,letter = 0;words<2 , string[words][letter] != NULL;)
{
letter++;
if (string[words][letter] = NULL)
{
printf("%c\n", string[words][letter - 1]);
words++;
}
}
}

目标是当它到达第一个单词的末尾时,它将打印第一个字母并前进到下一个字符串

最佳答案

循环中的这个条件

words<2 , string[words][letter] != NULL;

是错误的。看来你的意思只是

words<2

循环体中的第一条语句

letter++;

也是错误的,因为您跳过了索引 0。

如果我理解正确,您需要的是以下内容

#include <stdio.h>

int main(void)
{
enum { N = 10 };
char string[][N] = { "lior","king" };
const size_t M = sizeof( string ) / sizeof( *string );

for ( size_t word = 0, letter = 0; word < M; )
{
if (string[word][letter] == '\0' )
{
if ( letter != 0 ) printf( "%c\n", string[word][letter - 1] );
letter = 0;
++word;
}
else
{
++letter;
}
}

return 0;
}

程序输出为

r
g

关于c - 仅用一个循环打印数组中 String 的最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59191759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com