//此段代码学到了“指针的指针”的一个作用。还有atoi函数的作用。将char型字符串“123”转化为int型整数,其中函数实现方法有所欠缺。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>//包含函数malloc
int arithMatic(const char *stringInput,char *stringOut)
{
#ifdef DEBUG
if(NULL==stringInput)
return 0;
#endif
const char *inString=stringInput;
char *outString=stringOut;
char* pLeft=(char*)malloc(10);
char* pRight=(char*)malloc(10);//野指针需初始化,即开辟空间。
char* ppLeft=pLeft;
char* ppRight=pRight;//设置ppLept和ppRight的作用,保留pLeft和pRight指向首地址。
char* mString=(char*)malloc(10);//如果不在此处初始化,即使编译通过,但执行时提示输出段错误。
int a,b,c=0;
while(' '!=*inString)
{
//printf("Hello\n");//调试代码用
*ppLeft=*inString;
//printf("%c\n",*ppLeft);
inString++;
ppLeft++;
}
inString++;
if(('+'==*inString)||('-'==*inString))
{
*mString=*inString;
//printf("%c\n",*mString);
inString++;
if(('+'==*inString)||('-'==*inString))
{
printf("result=%d\n",c);
return 0;
}
}
inString++;
while(*inString)
{
//printf("Hello\n");
*ppRight=*inString;
printf("%c\n",*ppRight);
inString++;
ppRight++;
}
inString++;
a=atoi(pLeft);
b=atoi(pRight);
if('+'==*mString)
{
c=a+b;
printf("result=%d\n",c);
}
else
{
c=a-b;
printf("result=%d\n",c);
}
return 0;
}
int main()
{
char input[100]={"78 + 15"};
char output[100]={0};
arithMatic(input,output);
printf("%s\n",input);
//printf("%s\n",output);
return 0;
}
“指针的指针”的作用
最新推荐文章于 2023-02-24 22:00:12 发布