假设原字符串为s,用两个函数,两个数组a,b;
创新互联公司坚实的技术研发基础赢得了行业内的良好口碑,公司成立10多年来,为数千家企业提供过网站建设、软件开发、搜索引擎优化技术、互联网大数据整合营销服务,多年的技术服务成功经验、众多的客户使我们能懂得更多,做得更好。"让您的网站跑起来"是我们一直追求的目标!
一个函数将字符串里的单个字符转换成0-9这几个数字。将字符逐个读入a数组,遇到“.”则将点之前的数字合并读入b数组,如:a[2]='.',b[1]=a[1]+a[0]*10,然后将a数组清空继续读入“.”后面的数,直到遇到空格,如:a[1]=a[1]+s[3]/10;
a[2]=a[1]+s[4]/1e2;
然后将a[2]加到b[1]里。
1、C语言有atoi、atol、atof等库函数,可分别把ASCII编码的字符串转化为int、long、float类型的数字。
头文件:stdlib.h
函数原型:int atoi(const char* nptr);
2、举个例子:
char *str="123";
int num=atoi(str);
执行后,num的值被初始化为123
字符串本身就是ASCII码的数组呀
使用%s打印的就是字符串
使用%d一位一位的打印就是ASCII码了
for(i=0;istrlen(a);i++)
{
printf("%d ",a[i]);
}
上面的打印就是打印字符串的ASCII码
字转换:wctomb、mbtowc,wc 指 Wide charactor,mb 指 Multi-byte。
字符串转换:wcstombs、mbstowcs,wcs 和 mbs 的 s 指 string。
这 4 个函数是 C 标准函数库函数中的。如果只是在 Windows 平台下编程,可直接调用 Windows API 函数 WideCharToMultiByte 和 MultiByteToWideChar 实现。但是如果调用标准库函数的话,在 Linux 下也是有效的。调用标准库函数,首先必须包含 locale.h 并调用 setlocale(LC_ALL, "") 后才能正确转换。Windows 下的 Multi-byte 是 ANSI 编码的,Wide charactor 是 Unicode (UTF-16) 编码,而 Linux 下的 Multi-byte 是 UTF-8 编码的,Wide charactor 是 Unicode (UTF-32) 编码。
#include stdio.h
#include stdlib.h
#include locale.h
int main(void)
{
char str[12];
wchar_t wstr[] = { 0x52B3, 0x788C, 0 };
setlocale(LC_ALL, "");
wcstombs(str, wstr, sizeof(str)/sizeof(char));
printf("%s", str);
return 0;
}
#includestdio.h
voidmain()
{
unsignedchara;
printf("enterchar:");
scanf("%C",a);
printf("ascii=%d",a);//强制转化为ascii码
}
扩展资料
C语言ASCII编码的来源
ASCII码
一个二进制位(Bit)有0、1两种状态,一个字节(Byte)有8个二进制位,有256种状态,每种状态对应一个符号,就是256个符号,从00000000到11111111。美国制定了一套英文字符与二进制位的对应关系,称为ASCII码,沿用至今。
ASCII码规定了128个英文字符与二进制的对应关系,占用一个字节(实际上只占用了一个字节的后面7位,最前面1位统一规定为0)。例如,字母a的的ASCII码为01100001,那么你暂时可以理解为字母a存储到内存之前会被转换为01100001,读取时遇到01100001也会转换为a。
#includestdio.h
voidmain()
{
unsignedchara;
printf("enterchar:");
scanf("%C",a);
printf("ascii=%d",a);//强制转化为ascii码
}
扩展资料:
在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
参考资料来源:百度百科-ASCII