关于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;
}