首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-03-04 
关于c语言字符串处理的一个问题我输入字符串ahi希望输出ahi结果不对,请问要怎么改?intmain(){intCheckCmd(

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

热点排行