c语言高手请进来看一下.....

来源:百度知道 编辑:UC知道 时间:2024/09/13 00:05:39
#include <stdio.h>
#include <string.h>
void get(char string[]);
void main()
{
char s[]={"abc"};
char w[44];
get(w);
if(strcmp(s,w)==0)
printf("the same\n");
else
printf("different\n");
}

void get(char string[])
{

char c;
int i=0;
do
{
c=getchar();
string[i++]=c;
}
while(c!='\n');
string[i-1]='\0';
}

与下面这个 对比

#include <stdio.h>
#include <string.h>
void get(char string[]);
void main()
{
char s[]={"abc"};
char w[44];
get(w);
if(strcmp(s,w)==0)
printf("the same\n");
else
printf("different\n");
}

void get(char string[])
{

char c;
int i=0;
do
{
c=getchar();

好像第二个的get()函数中i++后面掉了“;”号。
还有,因为是两组程序都是先使用i,然后在使其自加,所以最后的字符串结束符'\0'应该放在string[i-1]单元中,但第二组程序中是string[i]则第i-1单元的值将未知,应该就是这两处错了吧