c语言问题:将数字字符串(如“1234”)转换为数值型数据怎么实现啊

作者&投稿:雪居 (若有异议请与网页底部的电邮联系)
c语言问题~

首先,这是一道考区分 "表达式" 与 "表达式的值" 的题。
我们要注意,表达式也是有它自己的值的。
一、逗号表达式(表达式1,表达式2,...,表达式n)采取从左到右顺序求值,并把最后一个逗号后的表达式的值作为 "逗号表达式的值"。
如:表达式1,表达式2,……,表达式n 这个 "逗号表达式的值" 就等于 "表达式n" 的值,与其它值无关。
二、赋值表达式(变量=表达式)采取从右到左求值,并把等号左边的变量最终得到的值作为 "赋值表达式的值"。
所以,表达式(i=4,j=16,k=32)的值是 k=32 的值,而 k=32 这个赋值表达式的值就是等号左边变量 k 的最终值,是32。于是,X 值为32。
求采纳为满意回答。

int i = 12345;
char str[100];
sprintf(str, "%0.3f", ((float)i)/1000);
以上是简单的数字转换, 先把int类型转变为float, 然后除以1000, 再作为浮点数输出到str.
并不需要用到拆分字符串.

char num[] = "12345";
char str[100];
sprintf(str, "%s", num);
sprintf(str+2, ".%s", num+2);
以上是将"12345"这个字符串的指定位置插入一个'.'.
首先将整个字符串(12345)输出到str, 然后把后半部分(345, num+2的位置)连同一个'.'输出到
str第3个字符的位置(即str+2), 注意第2句sprintf的".%s"中 '%'前面有个 '.'

sprintf和printf用法一样, 只不过输出目标不是屏幕, 而是指定字符串(第一个参数).

代码示例如下:

#include<stdio.h>

int fun(char*p)

{    

int sum=0;  

while(*p!='\0')  

{        

sum=10*sum+*p-'0';   

p++;   

}   

return sum;

}

void main()

char str[20];   

int num;    

gets(str);   

num=fun(str);  

printf("%d
",num);

}

拓展资料

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。   目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。



给你一个思路,从字符串的第一位开始为转化为数值,用ascII码转如; x=9-‘0’,x就可以是 int 型的9.。 然后,每判断一位让前面的书乘以10,在加上这个数,就可以了

#include<stdio.h>
int fun(char*p)
{
    int sum=0;
    while(*p!='\0')
    {
        sum=10*sum+*p-'0';
        p++;
    }
    return sum;
}
void main()
{
    char str[20];
    int num;
    gets(str);
    num=fun(str);
    printf("%d
",num);
}


#include <stdio.h>

int a2i(char const *s);

int main(void) 
{
printf("%d
",a2i("-123"));
return 0;
}

int a2i(char const *s)
{
int sign=1,t=0;
if(*s=='-')
{
s++;
sign=-1;
}
while(*s)
{
t=t*10+*s++-'0';
}
return sign*t;
}


atoi("1234")


在C语言中,将字符串中的数字字符倒置
void C_Reverse(char* sSrc,int nLen) \/\/sSrc 源字符串 nLen字符串长度 { if(sSrc == NULL) return ;int nIndex = nLen-1; \/\/从字符串的末尾开始输出,while(nIndex < 0){ char ch = sSrc[nIndex];if(isdigit(ch)) \/\/判断是否是数字,是的话就输出 printf("%c ",ch);--n...

用C语言编程 将字符串中的所有数字字符移到所有非数字字符之后,并保 ...
include <stdio.h> include <string.h> int main(int argc, char* argv[]){ char buf[] = "def35adh3kjsdf7";int n1 = 0;int n2 = 0;char *pTem1 = new char[strlen(buf)+1];char *pTem2 = new char[strlen(buf)+1];for (int i=0; i<strlen(buf); i++){ if (buf[...

用c语言编写程序 有一个文件s 将其中的数字字符与其他字符分别存放到...
include<cstdio> include<cstdlib> include<cstring> int main(){ FILE *s,*s1,*s2;s=fopen("s.txt","r");s1=fopen("s1.txt","w");s2=fopen("s2.txt","w");if(!s){ printf("not open s normally!");exit(1);} char buf[4096];while(fscanf(s,"%s",buf)!=-1){ char ...

C语言输入两个数字字符,求其所代表的数之和
在C语言中,可以使用 scanf() 函数接受输入,然后将字符转换为对应的数字,最后计算两个数字之和即可。下面是一段实现该功能的示例代码:include <stdio.h> int main() { char c1, c2;int num1, num2, sum;printf("请输入两个数字字符:\\n");scanf("%c %c", &c1, &c2);\/\/ 将字符...

阿拉伯数字都有什么谐音?
4——思、输、是、死、子、世。5——我、往、呜、舞、苦、惟。6——啦、了、聊、老、溜、理。7——气、妻、亲、歉、去。8——拜、别、不、吧、帮。9——就、走、救、加、久。10——代表十全十美。根据这种约定俗成的规定,很多丰富的内容都可以通过阿拉伯数字的不同排列组合来表达。

问大家一个C语言问题。下面的将字符转换成数值是怎么转换的啊,看不懂...
首先:char型都有个ASCII码值,str[i]-'0'就把数字字符便成了相应的数字值。再者:num=num*10+每次读到一个数字,就把num乘10,再加上这个数字,由于是从高位读取的,就还原出了这个数。就像23可以分解成:2*10+3一样,逐步分解的反向操作,就合成了数字。循环中其他语句都是为了判断数字的正负...

C语言关于0的问题 s=10*s+p[i][j]-'\\0'
'\\0'的int值为0;'0'的int值为48;你这里用-'0'能够实现将‘0’到‘9’这些数字字符转换成数字0到9;所以,你懂的。你的代码应该为了实现将数字字符串转化成相应的整数吧,如果是的话代码应该是这样:main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2...

C语言题目:提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为...
评测·系统显示的是wrong answer吗?如果是PE,请修改输出格式。这里我指出一种情况,就是比如我输入a0123a 这组字符串,那按照题目的要求应该输出的是123,而你输出的肯定是0123。我不知道这是不是你不通过的测试用例,我也没有你测试平台的地址,没办法验证,就当是我给你一点建议吧。

c语言,输入一串字符(长度不超过80个字符),要求将其中的数字字符复制到另...
include <stdio.h>int main(){ char s1[100], s2[100]; int i,j; gets(s1); for(i = j = 0; s1[i]; i ++) if(s1[i]>='0'&&s1[i]<='9') s2[j++] = s1[i]; s2[j] = 0; puts(s2); return 0;}指针方式类似.include <stdio.h>int ...

C语言大神解答,由键盘输入一行10个字符,将其中每个数字字符所代表的数...
include "stdafx.h"include "ctype.h"include "string.h"int main(int argc, char* argv[]){ char s[100];gets(s);int sum = 0, i = 0, len = strlen(s);for (i = 0; i < 10; i++) { if (isdigit(s[i])) { sum += s[i] - '0';} } printf("%d\\n", sum);g...

虎丘区17610668816: 帮我写俩C语言程序 题目1 把键盘输入的由数字字符组成的字符串转换为相应的数字.例如把"123"转换为整数12 -
貊郎清火: 题目1 #include<stdio.h> #include <math.h> #include <string.h> int f(char s[]) {int n=strlen(s);long num=0;for (int i=0;i<n;i++){num+=(int(s[i])-48)*pow(10,n-i-1);}return num; }void main() {char s[4];printf("输入数字字符串:");gets(s);printf("num=%d\n",f(s)); }

虎丘区17610668816: 用c/c++将字符串"12"转换为整数12并输出怎么写? -
貊郎清火: C语言里面有一个函数: atoi函数: 用法大致: #include char str[100]="12"; int a; a=atoi(str); 就可以了. 当然还有 atol,就是转成long型.

虎丘区17610668816: c语言中数字字符串中的数字转化成一个个数字并存入整形数组 -
貊郎清火: /*************************************************** 函数名: CharToInt* 参数:* 形参:* intString: 保存整数的字符串* 返回值: * int: 成功返回转换后的整数,否则返回0* 功能:* 把字符串转换成整数* 例如:* "1200" => 1200* 作者: sdh* 编写明...

虎丘区17610668816: C语言数字转字符串 -
貊郎清火: 如果是输入的话,直接以字符形式接收就可以 #include int main() {char s[7] = {0};printf("输入一个6位数:");scanf("%6s",s);printf("输入的数字为:%s\n",s); return 0; }

虎丘区17610668816: c语言indexof的问题,请指教! -
貊郎清火: #include <stdio.h> #include<string.h> main() { char str1[1001]; char str2[11][1001];//记录你所有的数据组 int count[11] = {0};//记录你数字的保存个数 int flag[11];//出现重复的字符时不重新计算 char *p = null; int index = 0; int number = 0; int x = 0; ...

虎丘区17610668816: 请高手帮我用c语言编个程序,将一个数字字符串改写成数字,例如将" - 1234"改写成 - 1234 -
貊郎清火: 一下代码对整数有效 但是-023 只能转化为-23 int str2num(char str[]) { int i=0,num=0,flag=0; if(str[0]=='-') { i=1; flag=1; } for(;i<strlen(str);i++) { num=num*10+str[i]; } if(flag==1) { num=num*(-1); } return num; } void main() { char a[]="-153",b[]="0456"; printf("%s:%d\n%s:%d",a,str2num(a),b,str2num(b)); } 烦请楼主测试

虎丘区17610668816: C语言 把数字字符串转化成整数 -
貊郎清火: 字符串是不能转换成整数的,单独一个数字字符可以转换为整数. 例如:字符'0'可以转换成整数 48字符'1'转换成 49....字符'9'转换成 57 原理:C语言中的int类型和 char类型在 0--255值域范围内可以通用. 例如:int a;a=65;printf("%c",a);输出:A 再举例:char b;b='a';printf("%d",b);输出:97

虎丘区17610668816: C语言有关数字转成字符串的问题 -
貊郎清火: char *itoa(int value,char *string,int radix) 将整数value转换成字符串存入string,radix为转换时所用基数 int i=123; char s[10]; itoa(i,s,10); puts(s);

虎丘区17610668816: 用你C语言使用冒泡法排序将字符串”12,24,20,54,6,9,36”排序后先从小到大输出再从大到小输出 -
貊郎清火: 这个简单,开始没看清是字符,都一个道理加个转换好了,当然这好像不是常规方法 : int score[7]; int i=0; int j=0; int t=0; char ch[][2]={"12","24","20","54","6" ,"9","36"}; //将字符串转化为数字 for(i=0;i<7;i++) { if(ch[i][1]=='\0')...

虎丘区17610668816: C语言:将一个整型数组转换为字符串输出.如 int[]={10,11,12},输出char *s = "101112" -
貊郎清火: #include#include#include void IntToStr(int *i, char *c, int len) {//i为整形数组,c为要存放字符串的数组,len为整形数组元素个数 int k; char tmp[10]; for(k=0;k { itoa(i[k],tmp,10); strcat(c,tmp); } } int main() { int i[]={10,11,12}; char c[100]=""; IntToStr(i,c,sizeof(i)/sizeof(i[0])); printf("%s\n",c); return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网