C语言中如何把一个字符串转化成其ASCII码的数组??

如题,假设一个字符串str[]="abcde",
如何产生一个数组a[40]包含其40位ASCII码??
对于字符串str来说,str[0]单元里面就存放了字母a的ASCII码,str[1]单元里面就存放了字母b的ASCII码,以此类推......

-----可是str[0]中是char变量,如何转变为8位的int变量呢??

字符本来就是用ascII码储存的,你用printf("%d",str[i])输出就是asc码,用%C输出就是字符

-----我不想printf输出,只是想用另一个数组来保存asc码,所以不知道该怎么写程序呢??

直接将字符变量赋值给整型变量,即可实现字符到对应ASCII码的转换。


具体实现方法可以参考如下程序段:

char str[]="abds%*&34dfs";  // 定义一个字符数组,存放待转换为ASCII码的字符串
int AsciiNum[20];  // 定义一个整型数组,存放字符所对应的ASCII码值,数组大小根据字符串长度进行设置
int i;
// 将字符串的每个字符逐个赋值给整型数组AsciiNum,即实现字符到ASCII码值的转换
for(i=0; i<strlen(str); i++)  
{
    AsciiNum[i] = str[i];  // 最后数组AsciiNum就是字符串每个字符所对应ASCII码值的数组
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-03-20
字符本来就是用ascII码储存的,你用printf("%d",str[i])输出就是asc码,用%C输出就是字符
既然数值一样就很好转换了,
int num[40],i;
char str[40];
for(i=0;i<40;i++)
num[i]=str[i];本回答被提问者采纳
第2个回答  2008-03-19
for(i=0;*str,i<40;i++,str++)
a[i]=*str;
第3个回答  2008-03-19
呵呵,你好像还是没真正理解字符和字符串。

对于字符串str来说,str[0]单元里面就存放了字母a的ASCII码,str[1]单元里面就存放了字母b的ASCII码,以此类推......
相似回答