C语言中字符串怎样转换为asc编号

比如中间的一段程序是
TCHAR str[256];
GetDlgItemText(hwnd,IDC_EDITNAME,str,sizeof(str));
后续是要将输入的str的内容(比如abc)表示成ascii码(979899)。
并且转换为一个长整形数。请问高手怎么做。万分感谢。
不是三个字符,是一个字符串啊。

字符串要转为ascii码值,需要逐个字符转换为ASCII码。

在C语言中,要输出字符的ASCII码值,只需要用%d的格式,用printf函数输出即可。因为%d的格式下,会将字符型变量转为整型,值就是ASCII码值。

编写函数如下:

void print_asc(const char *s)
{
    while(*s) printf("%d ",*s++);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-31
1、将字符转换为整型自动将字符ASCALL值取出
char a='a'; int i;
i=a;

2、例程:
//函 数 名:CharToHex()
//功能描述:把ASCII字符转换为16进制
//函数说明:
//调用函数:
//全局变量:
//输 入:ASCII字符
//返 回:16进制
/////////////////////////////////////////////////////////////////////
unsigned char CharToHex(unsigned char bHex){
if((bHex>=0)&&(bHex<=9))
bHex += 0x30;
else if((bHex>=10)&&(bHex<=15))//大写字母
bHex += 0x37;
else bHex = 0xff;
return bHex;
}
/////////////////////////////////////////////////////////////////////
//函 数 名:HexToChar()
//功能描述:把16进制转换为ASCII字符
//函数说明:
//调用函数:
//全局变量:
//输 入:16进制
//返 回:ASCII字符
/////////////////////////////////////////////////////////////////////
unsigned char HexToChar(unsigned char bChar){
if((bChar>=0x30)&&(bChar<=0x39))
bChar -= 0x30;
else if((bChar>=0x41)&&(bChar<=0x46))//大写字母
bChar -= 0x37;
else if((bChar>=0x61)&&(bChar<=0x66))//小写字母
bChar -= 0x57;
else bChar = 0xff;
return bChar;
第2个回答  推荐于2017-09-28
其实这就是一个查表转换问题:
C语言字节数为4,与long型数据一样。
unsigned long int的取值范围: 0~4294967295 即 0~(2的32次方-1)
42, 94, 96, 72, 95 最多可以用5个字符。

char a
int i=0;
int t[5];
t={0,0,0,0,0};
whie(a=str[i++])
{
switch(a)
{

'0':
t[i]=48;
break;
'1':
t[i]=49;
break;
....
'9':
t[i]=57;
break;
'a':
t[i]=97;
break;
'b':
t[i]=98;
break;
有特殊字符的话还要写,
...
}
}
long result=t[0]*10000+t[1]*1000+t[2]*100+t[3]*10+t[4];
changdu=strlen(s);
if(chandu==1)
result=t[0];
if(changdu==2)
result=result/1000
if(changdu==3)
result=result/100
if(changdu==4)
result=result/10本回答被提问者采纳
第3个回答  2011-01-27
#include <stdio.h>
main()
{
int x,y,z;
x='a';
y='b';
z='c';
printf("%d%d%d\n",x,y,z);
}
这样就可以输出979899了。
第4个回答  2011-01-28
void strl.ower (char str [])
{
int i;
i=0;
while (str [i]! ='\O')
{
if (str[i]>='A' && str[i]<='Z')
str [i]=str[i]+32; //大写与小写字母应该相差97-65=32
i++;
}
}
相似回答