数字字符转换相关内容

数字字符转换:输入一个以回车结束的字符串(少于 80 个字符),将其中第一次出现的连续的数字字符('0'~'9')转换为整数,遇到非数字字符则停止。例如,将字符串“x+y=35+z+9”转换为整数是 35。
改写图片上的代码,在main主函数中采用gets或scanf函数(%s格式)输入一行文字,数字字符转换功能在自定义函数void convert(char str[],int *dp)中完成,转换后的整数在main主函数中输出

img


#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;
}