C语言-字符串函数(自定义):strToInt()将字符串转成数字

说明

依赖 strIsNum() 函数,详见 链接

函数

/*
将字符串转成数字
str:字符串
num:转成的数字
返回值:0表示不可以转换,1表示可以转换
*/
int strToInt(char* str,int & num)
{
    int res=strIsNum(str);
    if(res==0)
    {
        return 0;
    }
    else
    {
        int i=atoi(str);
        num=i;
        return 1;
    }
}

例子

// 学习atoi.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

//判断字符串是否全是数字,如果是数字返回1,不是返回0
int strIsNum(char *str)
{
    int len=strlen(str);
    for(int i=0;i<len;i++)
    {
        int res=isdigit(str[i]);
        if(res==0)
        {
            return 0;
        }
    }

    return 1;
}

/*
将字符串转成数字
str:字符串
num:转成的数字
返回值:0表示不可以转换,1表示可以转换
*/
int strToInt(char* str,int & num)
{
    int res=strIsNum(str);
    if(res==0)
    {
        return 0;
    }
    else
    {
        int i=atoi(str);
        num=i;
        return 1;
    }
}

int main(int argc, char* argv[])
{
    char s[128]="a234";
    /*
    char s[128]="0";
    int i=atoi(s);
    printf("%d\n",i);


    char s2[128]="a";
    int i2=atoi(s2);
    printf("%d\n",i2);
    */

    int num=0;
    int res=strToInt(s,num);
    if(res==1)
    {
        printf("%d\n",num);
    }
    else
    {
        printf("不能转成数字!\n");
    }
    return 0;
}

原文出处:/show_1IX2tasryA2z.html