C语言字符串赋值

来源:百度知道 编辑:UC知道 时间:2024/07/04 11:10:07
#include<stdio.h>
#include<string.h>
void main()
{
char a[20];
int b[20],i,l;
l=strlen(a);
scanf("%s",a);
for(i=0;i<l;i++)
b[i]=a[i];
printf("%d",b[i]);
}
这个简单的函数!
为什么 我用分步查看 比如我输入的是 4532 而a[0]、a[1]、a[2]、a[3]分别显示的是 51‘4’、52‘5’、53‘3’、54‘2’赋值后b[0]、b[1]、b[2]、b[3]的值分别是 51、52、53、54 这好像是内存地址 我要b[0]、b[1]、b[2]、b[3]分别得到的是 4、5、3、2要怎么写!

呵呵,51,52这些不是地址,是ASCI码。这样:

#include<stdio.h>
#include<string.h>
void main()
{
char a[20];
int b[20],i,l;
scanf("%s",a);
l=strlen(a);//换到下面呃,上面没有意义,都没有输入,怎么获得长度。
for(i=0;i<l;i++)
b[i]=a[i]-'0';//主要是这里了,你想啊,你输入的是字符型,得到的数据是他的ASCI码哈,这里减去字符零就会得到他对应的数据值了。
printf("%d",b[i]);
}