晚上好,我创建了一个单词搜索程序,我的输出应该采用
"A palavra % está no texto!"
或 "A palavra % não está no texto!"
的形式,但它看起来像这样:
帕拉瓦诺特
não está 没有文字!
我的代码是这样的:
if(veredito!=0){
c=0;
printf("A palavra ");
do{
printf("%c", palavras[l][c]);
c++;
} while(palavras[l][c-1]!='\0');
printf(" está no texto!\n");
} else{
c=0;
printf("A palavra ");
do{
printf("%c", palavras[l][c]);
c++;
} while(palavras[l][c-1]!='\0');
printf(" não está no texto!\n"); }
我尝试将所有短语放在一行中,但不起作用。我如何创建一个 char 类型矩阵来注册单词,我使用 do-while 循环来运行打印代码正在分析的行的所有字符。该矩阵的每一行都记录一个不同的单词,幸运的是它正在工作!所以真正的问题是 printf 函数......
P.s.:抱歉缺少标识,该网站的问题正文无法识别我的代码。
根据缺失的代码块以及数据的形成方式,只有这样:
更换:
do {
printf("%c", palavras[l][c]);
c++;
} while(palavras[l][c-1]!='\0'); // see the ** note below
与:
for( c = 0; palavras[l][c] && palavras[l][c] != '\n'; c++ )
putchar( palavras[l][c] );
当遇到字符串末尾或换行符时,这将终止循环。这也使用了轻量级
putchar()
函数而不是重量级 printf()
。
** 请注意,在测试字符值之前,首先 trys 打印
'\0'
?不需要!