读书人

关于c语言字符串处理的一个有关问题

发布时间: 2012-03-04 11:13:33 作者: rapoo

关于c语言字符串处理的一个问题
我输入字符串 a 'hi '
希望输出 a hi
结果不对,请问要怎么改?
int main()
{
int CheckCmd(char*);
char cmd[20];
printf( "input a command:\n ");
scanf( "%s ",cmd);
CheckCmd(cmd);
getch();
return 0;
}

int CheckCmd(char *cmd)
{
char *temp;
temp=cmd;
char c0,c1[10],c2[10];
int i=0,j=0,k=0;
c0=*temp;
temp++;
while(*temp== ' ')
temp++;
temp++;
while(*temp!= '\ ' ')
{
c1[i]=*temp;
i++;
temp++;
}
printf( "%c %s\n ",c0,c1);
return 0;
}


[解决办法]

#include "stdio.h "
#include "stdlib.h "

int main()
{
int CheckCmd(char*);
char cmd[20];
printf( "input a command:\n ");

gets(cmd);
CheckCmd(cmd);

return 0;
}

int CheckCmd(char *cmd)
{
char *temp;
temp=cmd;
char c0,c1[10],c2[10];
int i=0,j=0,k=0;
c0=*temp;
temp++;
while(*temp== ' ')
temp++;
temp++;
while(*temp!= '\ ' ')
{
c1[i]=*temp;
i++;
temp++;
}
c1[i] = 0;
printf( "%c %s\n ",c0,c1);
return 0;
}
[解决办法]
int CheckCmd(char *cmd)
{
char *pBeg = NULL;
char *pEnd = NULL;

putchar(cmd[0]);

pBeg = strchr(&cmd[1], '\ ' ');
if (pBeg == NULL)
return 0;
else
pBeg++;

pEnd = strchr(pBeg, '\ ' ');
if (pEnd == NULL)
return 0;
else
*pEnd = '\0 ';

puts(pBeg);
return 0;
}

读书人网 >C语言

热点推荐