提取字符串的数字,并转换为整形的数字进行返回 c语言 简单易懂

///输入的一串整型数字字符转换为整型数值。
① 编写一个函数 str2int,功能为接收一串字符串,提取其中的数字字符,
转换为整型数值返回,
/
#include<stdio.h>//标准的输入和输出流
#include<stdlib.h>//system(“pause”)要用
int str2int(char* str);//提取字符串的数字并且将该数字转换为整形
int main(void)//主函数
{ int x = 0;//定义一个整形的变量,并进行初始化,如果不进行初始化,程序会报错
char a[99];//定义一个长度为99的字符串数组
printf(“请输入一串字符串:\n”);//提示用户输入相应信息
gets_s(a, 99);//将用户输入到缓冲区的字符串进行读入,也可以用scanf的形式进行读入
x=str2int(a);//调用函数,提取字符串的数字并且将该数字转换为整形
printf(“结果为%d”, x);//打印出结果
system(“pause”);//将黑色窗口停留,用户按任意键后才会退出
return 0;//程序正常运行要返回一个0
}
int str2int(char* str)
{
int i = 0 ,t = 0;//定义两个整形的变量
char* p = str; //将指针指向传入的字符串,这样通过指针就可以对该字符串进行操作了
while ((p + i) != ‘\0’)//只要字符串没有到达反斜杠0的位置,那么就可以继续提取
{
if (
(p + i) >= ‘0’ && (p + i) <= ‘9’)//如果该字符串中的某个字符满足
//
(p + i) >= ‘0’ && *(p + i) <= ‘9’
//说明他是一个数字字符,因为要将字符串的数字转换为整形,所以要在末尾减去一个反斜杠0
//就可以将原先的数字字符转换为数字了
{
t = t * 10 + *(p + i) - ‘0’;//遇到下一个数字,原先的那个数字就要乘10,
//再加上现在遇到的数字
}
i++;//注意每进行一次i都要++,表示移动到下一个位置
}
return t;//返回提取字符串的数字,并且将该数字转换为整形后的结果
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值