c语言2 从键盘输入一个数字形式的字符串, 将其转换为相应的数字并输出. 例如输入的字符串是"123", 转换后将

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言2 从键盘输入一个数字形式的字符串, 将其转换为相应的数字并输出. 例如输入的字符串是"123", 转换后将相关的知识,希望对你有一定的参考价值。

参考技术A #include "stdio.h"
#include "string.h"
int main()

int num,i;
char str[100];
printf("请输入字符串\n");
scanf("%s",str);
num=strlen(str);
for(i=0;i<num;i++)

printf("%d",str[i]-48);//根据ASCII表

return 0;
本回答被提问者采纳
参考技术B 可以用这个atio(a);a表示一个字符串首地址;
它包含在include<stdlib.h>头文件中追问

转换后将得到整数123 请发个完整的 我一点都不懂 急求

追答

#include
#include
int main()
char a[4]="123";
int b;
b=atoi(a);
printf("%d",b);
return 0;

c语言高手急救:从键盘输入长整数n,将其从个位开始,每三位数字一组用逗号间隔输出。

例如,如果输入最大的长整数:2147483647
则输出:2,147,483,647

比楼上的优点是可分解负整数。
#include<stdio.h>
int main()
long n;
int i=0,j=0,f=0;
char x[60];
printf("n=");
scanf("%ld",&n);
if(n<0) f=1;n=-n;
for(;n!=0;n/=10)
x[i++]='0'+n%10;j++;
if(j==3)
j=0;
x[i++]=',';


if(f) printf("-");
for(i-=1+(x[i-1]==',');i>=0;i--)
printf("%c",x[i]);
printf("\n");
参考技术A 看看这个能不能满足你的要求,不过只能显示正整数

#include <stdio.h>

void print(unsigned int a);

int main()



unsigned int m;
scanf("%u", &m);
print(m);

return 0;



void print(unsigned int a)

const unsigned long max_num = 30;
char buff[30] = '\0'; //定义一个缓冲区,大小为 max_num 字节。
char *p = buff + max_num - 1; /*将p指向buff的最后一个字符*/

int i = 0;
do

*--p = a % 10 + '0';
a /= 10;
i++;
if (i == 3)

i = 0;
if (a != 0)
*--p = ',';

while(a != 0);

p = buff;
while (*p == '\0') p++; /* 查找字符串第一个不为'\0'的地址。不用担心找不到,因为buff中至少有一个字符'0' */
printf("%s", p);
return;

以上是关于c语言2 从键盘输入一个数字形式的字符串, 将其转换为相应的数字并输出. 例如输入的字符串是"123", 转换后将的主要内容,如果未能解决你的问题,请参考以下文章

写一个程序,从键盘输入一个字符串,再从最右边开始向左数,按三位一个逗号的形式输出。

C语言:从键盘输入一篇英文文本,统计每个英文字母(分大小写)及空格、数字、回车和其他字符,咋编?

c语言 从键盘上任意输入一个字符(字母大小写,数字,控制字符和其他字符)判断所属字符类型,只发

用c语言从键盘输入两个数字,判断哪个数更大?

c语言--键盘输入数字,输出汉字读法

c语言题从键盘输入100到999之间的数,将该数的个十百位数字相加的和输出