程序大意:用户自己输入字串,当输入okid时结束输入,然后将输入的字串依次输出.
问题1:定义的char id[200][20];在没有赋值的情况下,是否默认为空?如果不是,如何初始化赋值?
问题2:如何判断其是否为空字串?以下代码目前输入无问题,但输出的却是乱码.
#include <stdio.h> 
#include <string.h>void main()
{
char id[200][20];
int i,j;
//for ()
for (i=0;i<200;i++)
{
gets(id[i]);
//puts(id[i]);
if (strcmp (id[i],"okid") == 0)
break;
}
for (j=0;j<200;j++)
{
 
if (strcmp (id[j],"")==0)
break;
else
puts (id[j]);
}
}

解决方案 »

  1.   

    1)memset( id, 0, sizeof( id ) );
    2)if( !( id[ j ] ) )
      

  2.   

    接上面的程序,如果我想把用户输入的相同字串删除一个,为什么下面这行id[j]="";不行呢?语法上有什么错吗?if (strcmp (id[i],id[j]) ==0)
    {
    puts (id[j]);
    id[j]="";
    }
      

  3.   

    不能在赋值给字符串时使用“=”,这是我们老师说的……
    其实你用strcpy代替一下应该就没有问题了
      

  4.   

    楼主已经#include <string.h> 了,为什么不用string。最好改成#include <string>