如何用C语言实现动态的字符串数组

这个问题我想了好长时间,我就是想写一个函数getstring实现这个功能:输入 123+4,调用这个函数后,输出123,再调用它输出+,再调用输出4.也就是把一个字符串里的数字和运算符分开,返回一个新的字符串。但是我运行时发现与理想结果有出入。以下是我的代码和运行结果。我对字符串的使用可能不太熟练,希望有大神能帮我。

分成取数字与取非数字2个函数较简单。get_v()取数字, get_o()取非数字。
#include <stdio.h>
char *get_v(char *a, char *b){
int i=0;
while( a[i]>='0' && a[i]<='9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
char *get_o(char *a, char *b){
int i=0;
while( a[i]<'0' || a[i]>'9') {b[i]=a[i];i++;};
b[i]='\0';
strcpy(a,a+i);
return b;
}
int main()
{
char s[]="1234+4*5";
char b[10];
while(strlen(s)>=1){
get_v(s, b);
printf("%s\n",b);
if (strlen(s)<=0)break;
get_o(s, b);
printf("%s\n",b);
};

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-09
代码我没有细看,但是你可以单步调试,看看每一步运行的结果,跟你想的是否一样,这样才能真正学好编程来。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网