C语言- 字符串尾数 代码如问题补充所示 为什么显示刚输入的字符串时, 最后总是多一个随机字符。 如何改正

#include <stdio.h>
#include <string.h>

void main()
{
char input[80];
char matrix[20][20];
int i;
int j=0;
int k=0;
int j2, k2;

printf("input the keywords and separate with comma");
gets(input);

//input
for (i=0;i<strlen(input);i++)
{
if (input[i] != ',') //只能用单引号不能用双引号
{
matrix[k][j]=input[i];
j++;
}
else
{k++;j=0;}
}

for (k2=0;k2<=k;k2++)
{
printf("%d.",k2+1);
// 第1个方法 , 但尾哥度总有多一个字符
printf("%s\n",matrix[k2]);

}
}

终止符的问题
#include <stdio.h>      
#include <string.h>     

void main()
{
   char input[80];
   char matrix[20][20];
   int i;
   int j=0;
   int k=0;
   int j2, k2;

   printf("input the keywords and separate with comma");
   gets(input);
   
   for (i=0;i<strlen(input);i++)
   {
  if (input[i] != ',') 
  {
  matrix[k][j]=input[i];
j++;
}
  else
  {matrix[k][j]='\0';k++;j=0;}/////////////////注意最后加终止符
   }
matrix[k][j]='\0';///////////////注意最后加终止符
for (k2=0;k2<=k;k2++)
{
printf("%d.",k2);
printf("%s\n",matrix[k2]);//这里是k2,而不是k2+1

   }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-05
你的%d后面有个.,去掉就可以了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网