数字字符转换:输入一个以回车结束的字符串(少于 80 个字符),将其中第一次出现的连续的数字字符('0'~'9')转换为整数,遇到非数字字符则停止。例如,将字符串“x+y=35+z+9”转换为整数是 35。
改写图片上的代码,在main主函数中采用gets或scanf函数(%s格式)输入一行文字,数字字符转换功能在自定义函数void convert(char str[],int *dp)中完成,转换后的整数在main主函数中输出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void convert(char str[],int *dp)
{
int i = 0;
for(i = 0; i < strlen(str); i++)
{
if(str[i] >= '0' && str[i] <= '9')
{
int num = str[i] - '0';
*dp = *dp * 10 + num;
}
else if(*dp != 0)
{
break;
}
}
}
int main()
{
printf("Input String:");
char str[80] = {'\0'};
scanf("%s", str);
int num = 0;
convert(str, &num);
printf("%d", num);
}
#include <stdio.h>
void convert(char str[],int *dp)
{
int i,isnum=0;
*dp = 0;
for(i=0; str[i]; i++)
{
if(str[i] >= '0' && str[i] <= '9')
{
*dp = *dp * 10 + str[i] - '0';
isnum++;
continue;
}
if(isnum>1)
return;
else
*dp = isnum = 0;
}
if(isnum<=1)
*dp = 0;
}
int main(void)
{
int number;
char str[80];
printf("Enter a string: \n");
gets(str);
convert(str,&number);
printf("number = %d\n", number);
return 0;
}