|
我想在主函数通过比较输入字符来调用tm();但不成功。
可是在分析字符函数Get_simarg()里调用,就能有结果。
。如果在Get_simarg()里加上printf("%d\n",strcmp(avptr[0],"tm")); /*1*/
这么一句,那么主函数就能正常调用tm();请大家指点。
字符分析是用来分析空格的,把一个命令行分解成独立的字符串
#include <stdio.h>
#include <string.h>
char *avptr[25];
int tm(void)
{
printf("This is TM\n");
return 1;
}
int Get_simarg(void)
{
char inputln[255];//={"abc def|gh"}; //存放输入的命令行
int s;
char *pc;
int i,j;
int k=0;
printf(">>");
fgets(inputln,255,stdin);//自动加上NULL
if((pc=strchr(inputln,'\n'))!=NULL)
*pc='\0';
s=strlen(inputln);
avptr[k++]=inputln;
for(i=0;i<s;i++)
{
if(!isspace(inputln))
continue;
else{
inputln='\0';
while(1){
if(isspace(inputln[i++])){
inputln='\0';
continue;
}
else{
avptr[k++]=&inputln;
break;
}
}
}
}
// printf("在函数里%d\n",strcmp(avptr[0],"tm")); /*1*/
if (strcmp(avptr[0],"tm")==0)
{
tm();
}
}
/*主过程*/
main()
{
Get_simarg();
// if(strcmp(avptr[0],"tm")==0) /*2*/
// {
// tm();
// }
} |
|