
C语言怎么把字符串转化为整形数字 是-'0'吗
我自己试了一下#include<stdio.h>#include<math.h>intmain(void){inti,n=0;intnumber[80];chars[80...
我自己试了一下
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n=0;
int number[80];
char s[80];
gets(s);
for(i=0;i<80;i++){
number[i]=(s[i]-'0');
n=n*10+number[i];}
printf("%d",n);
}
我输入13579输出的结果不是 13579 我哪里错了
还有gets(s)的用法是这么用的吗
还有个问题 我记得老师上课讲过一个控制的东西 是可以给出字符串长度的 求是什么。。⊙﹏⊙b汗 上课睡过去了。。 展开
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n=0;
int number[80];
char s[80];
gets(s);
for(i=0;i<80;i++){
number[i]=(s[i]-'0');
n=n*10+number[i];}
printf("%d",n);
}
我输入13579输出的结果不是 13579 我哪里错了
还有gets(s)的用法是这么用的吗
还有个问题 我记得老师上课讲过一个控制的东西 是可以给出字符串长度的 求是什么。。⊙﹏⊙b汗 上课睡过去了。。 展开
5个回答
展开全部
好吧
我给你看看我的程序吧
#include<stdio.h>
#include<cstring>
int main()
{
char zifu[80];
int shuzi[80];
gets(zifu);//你的gets用对了哦
for(int i=0;i<strlen(zifu);i++)//由于字符数组下表从0开始 所以是0
{//同时strlen(zifu)是zifu数组的字符数量 如果用80会有空字符的哦
shuzi[i]=zifu[i]-'0';//是-'0' 也可以写成-48
}
for(int i=0;i<strlen(zifu);i++)
printf("%d",shuzi[i]);
return 0;
}
我给你看看我的程序吧
#include<stdio.h>
#include<cstring>
int main()
{
char zifu[80];
int shuzi[80];
gets(zifu);//你的gets用对了哦
for(int i=0;i<strlen(zifu);i++)//由于字符数组下表从0开始 所以是0
{//同时strlen(zifu)是zifu数组的字符数量 如果用80会有空字符的哦
shuzi[i]=zifu[i]-'0';//是-'0' 也可以写成-48
}
for(int i=0;i<strlen(zifu);i++)
printf("%d",shuzi[i]);
return 0;
}
展开全部
第一种用“atoi”的:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
char str[1024] = {0};
int Interger;
printf("输入一个数字:\n");
scanf("%s", str);
Interger = atoi(str);
printf("转换为整形:%d\n", Interger);
getch();
}
第二种:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
char str[1024] = {0};
int Interger;
printf("输入一个数字:\n");
scanf("%s", str);
sscanf(str, "%d", &Interger);
printf("转换为整形:%d\n", Interger);
getch();
}
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
char str[1024] = {0};
int Interger;
printf("输入一个数字:\n");
scanf("%s", str);
Interger = atoi(str);
printf("转换为整形:%d\n", Interger);
getch();
}
第二种:
#include "stdio.h"
#include "stdlib.h"
#include "conio.h"
void main()
{
char str[1024] = {0};
int Interger;
printf("输入一个数字:\n");
scanf("%s", str);
sscanf(str, "%d", &Interger);
printf("转换为整形:%d\n", Interger);
getch();
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好吧 我给你看看我的程序吧
#include<stdio.h>
#include<cstring>
int main()
{
char zifu[80];
int shuzi[80];
gets(zifu);//你的gets用对了哦
for(int i=0;i<strlen(zifu);i++)//由于字符数组下表从0开始 所以是0
{//同时strlen(zifu)是zifu数组的字符数量 如果用80会有空字符的哦
shuzi[i]=zifu[i]-'0';//是-'0' 也可以写成-48
}
for(int i=0;i<strlen(zifu);i++)
printf("%d",shuzi[i]);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看你允不允许使用库函数了,或者是要自己编程来实现这个功能,如果是为了简单使用那么用库函数atoi()即可,比如char
*c="123";那么int
k=atoi(c);这样k的话就是123了,如果是编程来做,那么可以从字符串结束符\0的前1个开始回退,没退一次则系数*10,不过这样的话还需要检测非法输入等情况如何处理。
*c="123";那么int
k=atoi(c);这样k的话就是123了,如果是编程来做,那么可以从字符串结束符\0的前1个开始回退,没退一次则系数*10,不过这样的话还需要检测非法输入等情况如何处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for循环里你没有判断字符串结束,把字符串后面的也加进去了。
for(i=0;s[i]!='\0';i++){
number[i]=s[i]-'0';
n=n*10+number[i];
}
for(i=0;s[i]!='\0';i++){
number[i]=s[i]-'0';
n=n*10+number[i];
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询