C语言中怎么将一个整数字符串转换为一个数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中怎么将一个整数字符串转换为一个数相关的知识,希望对你有一定的参考价值。
C语言中怎么将一个整数字符串转换为一个数
#include<stdio.h>
//把一个整数字符串转换为一个数。
intascii_to_integer(char*string)
intvalue;value=0;
//逐个把一个整数字符串转换为一个数。
while(*string>='0'&&*string<='9')
value*=10;
value+=*string-'0';
string++;
//错误检查:如果由于遇到一个非数字字符而终止,把结果设置为0
if(*string!='\\0')
value=0;
returnvalue;
intmain()
char*numChar="102";
printf("%d\\n",ascii_to_integer(numChar)+3);
return0;
扩展资料
C语言转义字符
1、使用制表符格式化输出
横向制表符\\t可以用于格式化文本输出,假如我们要输出一组表格样式的数据,一种方法是使用输出多个空格对齐,另一种方法就是使用\\t。在下面的程序中,我们为表格的第1列与第2列应用两次\\t以使列之间有更多的间距。
2、使用反斜框输出文件路径
当我们需要在程序的运行日志或调试时输出文件路径信息,又或者像下面这样,简单的将一个路径输出到控制台,这时我们需要使用反斜框转义符来进行路径转义输出。
参考技术A 可以这么办假如一个字符串为string[10]="1234"; int number=0;
for(i=0;string[i]!='\0';i++)
number=number*10+string[i]-48;
number就是把string里的字符串转化成整数的结果本回答被提问者采纳 参考技术B #include<stdlib.h>
int
atoi(const
chat
*str);
功能:将字符串str转换成一个整数并返回结果。参数str
以数字开头,当函数从str
中读到非数字字符则结束转换并将结果返回。例如,
i
=
atoi(
"512.035"
);
i
的值为
512.
还有相应的int
atol(const
chat
*str);转为long
int
atof(const
chat
*str);转为float 参考技术C 如果是char *num="12345"
可以用atoi函数
int number;
number=atoi(num);
头文件是stdlib.h
C语言编程 计算一串字符中的数字个数
题目描述
小明的老师给小明出了一道题目:数数一篇文章出现了多少个数字,请你帮帮他吧。
输入
输入一个字符串,由空格、英文字母、数字组成,以回车结束,长度小于1000。
输出
输出整数个数(不是数字字符个数哦)。
样例输入
5436grh 74h74 57 74rg 63664greg743
样例输出
7
下面是我的错误代码
#include <stdio.h>
int main()
char str[1006];
int i,flag=0;
int count=0;
gets(str);
for(i=0;str[i]!='\0';i++)
if('0'<=str[i]&&str[i]<='9')
flag=1;
if('0'<=str[i+1]&&str[i+1]<='9'&&flag==0)
count++;
flag=1;
printf("%d\n",count);
return 0;
#include <string.h>
int main()
char szText[1006] = 0 ;
int count=0;
int nFlag = 0;
gets( szText );
for ( int i = 0; i < strlen( szText ); i++ )
if ( szText[i] <= '9' && szText[i] >= '1' )
if ( nFlag == 0 )
count++;
nFlag = 1;
else
nFlag = 0;
printf("%d\\n",count);
return 0;
稍微修改了一下,楼主可以参考
追问厉害! 您能讲下思路吗 对了我都不知到为什么 看上去这个代码是不能完成目的的 但就是对了
追答1,设置nFlag 变量,标志上一个字符是否是数字,如果非数字就设为0,就是下面这句
elsenFlag = 0;
2,如果一个字符是0~9之间数字,我们判断是否是一个新的数字开始,如果是一个新的数字开始的话前一个字符肯定就是非数字,那么这个时候nFlag == 0; 这样我们就可以确定一个新的数字开始,就把count增加1(count++),同时把nFlag 设为1,表示开始一个数字,如果下一个字符还是数字的的话nFlag == 1;我们就不增加count,直到遇到非数字,把nFlag设为0,之后新的数字开始再增加count计数
参考技术A #include <stdio.h>int main()
char str[1006];
int i,flag=0;
int count=0;
gets(str);
for(i=0;str[i]!='\0';i++)
if('0'<=str[i]&&str[i]<='9')
flag=1;
continue;
else
if(flag==1)
count++;
flag=0;
if(flag==1)count++;
printf("%d\n",count);
return 0;
追问
我现在能看懂了
追答从第一个数开始 如果是数字,那么标记flag=1,然后跳过下面的语句开始考虑下一个数,直到遇到不是数字的字符,如果此时的flag=1,即说明这个字符的前面一个是数字,因为遇到了字母 所以前面的就能算是一个整数了 此时count++,并将flag重新置为0,重复上述步骤,最后一步时,因为你的循环是当str[i]==0的时候退出循环,那么最后一个整数(假设有,就像例子)会被漏掉,所以在循环外面又加了一层判断
本回答被提问者采纳 参考技术B 不会啊,sorry以上是关于C语言中怎么将一个整数字符串转换为一个数的主要内容,如果未能解决你的问题,请参考以下文章