字符串转化为整数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串转化为整数相关的知识,希望对你有一定的参考价值。
7、字符串转化为整数程序
时 限: 1000 ms
内存限制: 10000 K
总时限: 3000 ms
描述: 编制程序实现将一个数字字符串转化为整数。
输入: 一个数字字符串。
输出: 对应整数。
输入样例: 1234
输出样例: 1234
提示: 要求用函数int Atoi(char str[])实现
这个题是考察 字符串转数字
用自定义函数 就是要你自己实现
你现在调用系统的atoi 不管你是在main函数调还是在自定义函数调
都是不会得分的
看看我写的
1234
Press any key to continue
#include "stdio.h"
int Atoi(char str[])
int j=1,i=0,nLen=0,n=0;
if (str[0]=='-') //判断正负
j=-1;
while (str[i++]!='\0') //计算长度
nLen++;
i=0;
while (i<nLen) //计算长度
n=10*n + str[i++] - '0';
return n*j;
main()
char ch[]="1234";
printf("%d\n",Atoi(ch));
有问题请追问 满意记得采纳哦 参考技术A 他们这个题目是要求自己实现atoi函数功能的意思吧?
按位取得字符,判断是不是数字,到不是数字的字符为止。
然后按取到的字符数得到最后的整数值。
"1234x"->'1','2','3','4'
('1' - '0') * pow(10,3) + ...
这样就可以了吧。 参考技术B /*2 编写自定义函数int ctoi(char s[]),将字符串转换为对应的整数。其中
s是一个只包含数字的字符数组,函数返值为转换后所得整数。在main函数中验证结果。
例如,字符串"512"转换后得到整数512。*/
#include<stdio.h>
#include<stdlib.h>
int ctoi(char s[]);
int main()
char a[100];
int b;
gets(a);
puts(a);
b=ctoi(a);
printf("%d\n",b);
system("pause");
return 0;
int ctoi(char s[])
char *p;
p=s;
int a=0,j=0;
for(;*p!='\0';p++)
j=(*p-'0');
a=a*10+j;
printf("%d\t",a);
return a;
这是用指针做的 参考技术C #include <stdio.h>
#include <stdlib.h>
#define MAX 100
void main()
char *p = new char[MAX+1];
gets(p);
long out = atoi(p);
printf("%ld",out);
有问题请追问,满意请采纳追问
我们要求用int Atio呢
追答atoi(p); //这就是atoi函数哇
追问#include
#include
int Atoi(char str[]);
int main()
int str[10];
scanf ("%s",str);
printf ("%d\n",str);
printf ("\n");
return 0;
指导下我这个把 实在不会~
#include
#include
int Atoi(char str[]); //定义,后面是函数方法实现
int main()
int str[10];
scanf ("%s",str);
printf ("%d\n",Atoi(str)); //函数调用
printf ("\n");
return 0;
int Atoi(char str[])
int n = atoi(str);
return n;
#include
#include
int Atoi(char str[])
int main()
int str[10];
scanf ("%s",str);
printf ("%d\n",Atoi(str));
printf("\n");
return 0;
int Atoi(char str[])
int n=atoi(str);
return n;
对么?
脑壳到底想干嘛?!
#include
#include
int Atoi(char str[]) //语句没有分号是你故意的呢?还是干嘛呢?
int main()
int str[10];
scanf ("%s",str);
printf ("%d\n",Atoi(str));
printf("\n");
return 0;
int Atoi(char str[])
int n=atoi(str);
return n;
C语言,整数数组转化为字符串
如题,我想将一个整数数组,改写成一个字符串输出,该如何写呢?
例如,整数数组为int data[5] = 4, 5, 3, 2, 5
改成:字符串:data:["4", "5","3","2","5"]
希望能给出大概函数的代码~
谢啦
C有“整数数组转化为字符串”的专用库函数char *itoa(int num,char *str,int radix)。声明一个存放转换后的字符串的二维字符数组,将整型数组的元素作为num来调用itoa函数,将结束存入二维数组即可。举例代码如下:
//#include "stdafx.h"//If the vc++6.0, with this line.#include "stdio.h"
#include "stdlib.h"
int main(void)
int a[8]=123,234,345,10,787,743891,123456789,0,i;
char x[8][11]="",;
for(i=0;i<8;i++)
itoa(a[i],x[i],10);//将整数a[i]按十进制转换成字符串存入字符数组x[i]
printf("%s ",x[i]);//打出来看看......
printf("\\n");
return 0;
参考技术A 先把输出内容放入一个字符数组里,再输出。
字符数组的内容,用sprintf,strcat 等逐步建成:
#include <stdio.h>
#include <stdlib.h>
int main()
char str[80];
int data[5]=4, 5, 3, 2, 5;
int i,L;
sprintf(str,"data:");
strcat(str,"[");
for (i=0;i<5;i++)
L = strlen(str);
if (i<4) sprintf(str+L,"\"%d\",",data[i]);
else sprintf(str+L,"\"%d\" ",data[i]);
;
strcat(str,"]");
printf("%s",str);
return 0;
输出:data:["4","5","3","2","5"]本回答被提问者和网友采纳 参考技术B #include <stdio.h>
void main()
int d[5]=4,5,3,2,5;
char a[80];
int i;
for(i=0;i<5;i++)
a[i]=d[i]+'0';
a[i]='\0'; //这个很重要,是字符串结束符
printf("%s\n",a);
参考技术C 写个循环 拼接起来 参考技术D 数组输出和字符输出有什么不同?为什么需要转换?
以上是关于字符串转化为整数的主要内容,如果未能解决你的问题,请参考以下文章