c语言中,怎样把内容为数字的char转换为int? C语言char类型的123怎么转换成 int类型的123?

c\u8bed\u8a00\u4e2d\uff0c\u600e\u6837\u628a\u5185\u5bb9\u4e3a\u6570\u5b57\u7684unsigned char\u8f6c\u6362\u4e3aint\uff1f

polly@nowthen:~$ cat test.c#include #include #include #include int main(int argc, char *argv[]){ int base; char *endptr, *str; long val; if (argc 2) ? atoi(argv[2]) : 10; errno = 0; val = strtol(str, &endptr, base); <----------\u5173\u952e if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN)) || (errno != 0 && val == 0)) { perror("strtol"); exit(EXIT_FAILURE); } if (endptr == str) { fprintf(stderr, "No digits were found\n"); exit(EXIT_FAILURE); } printf("strtol() returned %ld\n", val); if (*endptr != '\0') printf("Further characters after number: %s\n", endptr); exit(EXIT_SUCCESS);}polly@nowthen:~$ gcc -Wall test.c -o liupolly@nowthen:~$ ./liu 1152strtol() returned 1152polly@nowthen:~$ ./liu '1152'strtol() returned 1152

char a\uff1bint b\uff1ba=SBUF\uff1b//\u5047\u5982\u63a5\u6536\u5230\u7684a\u7684\u503c\u662f123(\u4e5f\u5c31\u662fa="123")
\u6240\u8c13a="123"\uff0c\u8fd9\u662f\u4e0d\u53ef\u80fd\u7684\uff08\u8fd9\u4e2a\u5b57\u7b26\u4e32\u9700\u89814\u4e2a\u5b57\u8282\u624d\u80fd\u4fdd\u5b58\uff0c\u800ca\u53ea\u6709\u4e00\u4e2a\u5b57\u8282\uff09\u3002
\u5982\u679c\u662fchar a;
a=123;
\u5219a\u4e2d\u4fdd\u5b58\u7684\u662f\u4e00\u4e2a\u5b57\u7b26\u7684ASCII\u503c\uff0c\u5373a\u7684\u503c\u662f\u4e00\u4e2a\u5b57\u7b26\uff08\u4e5f\u5c31\u662f\u5b57\u7b26'{'\uff09\u3002
\u5982\u679c\u60f3\u8981\u8ba9\u5b83\u8f6c\u6362\u4e3aint\u578b\u7684123\uff0c\u662f\u975e\u5e38\u65b9\u4fbf\u7684\u3002
int b=a;
\u5c31\u53ef\u4ee5\u4e86\u3002

内容为数字的char,包含
0,1,2,3,4,5,6,7,8,9
共计10个字符。
这十个字符在存为字符型时,其存储值为对应的ascii码,而这些ascii码是连续的,且按照其本身数字的大小来排列。
这样就可以将字符值,减去起始ascii码值实现转为对应值的效果。

int a; //转换的目标变量。
char c = '7'; //要转换的字符。
c = a - '0';
这样得到的就是对应的值了,即c = 7。
如果在文件中需要多次该操作,则可以定义一个带参宏,如下:
#define chartonumber(x) (x-'0')
这样只需要调用
c = chartonumber(a);
即可实现效果。

atoi是将数字的char*字符串转化为int型

将数字的char转换为int,直接输出int格式的char型就行,或者a-'0',ine和char是可以根据ASCII码进行隐式转换的

ASCII码表

http://www.weste.net/tools/ASCII.asp

本质上char类型和int其实是同一种类型。。。都代表了整数型大小,转换的话,在前面加上强制转换符就好了,如int()之类的

a-'0'
就行

x = (int)(unsigned char)c;

  • C璇█ 鎬庢牱灏瀛楃涓(鍖呭惈鏁板瓧,閫楀彿,鍒嗗彿)閲岄潰鐨勬暟瀛杞崲涓烘暣鍨嬫暟?
    绛旓細澶勭悊姝ラ锛氬垹闄ゅ垎鍙 鎸夌収閫楀彿鎷嗗垎锛屽 瀛楃涓 11锛22锛33 鎷嗗垎 寰楀埌 11 22 33 璋冪敤 atoi 鍑芥暟 鑾峰彇 鏁村瀷鏁
  • C璇█涓暟瀛楁庝箞璧嬪肩粰瀛楃涓,骞朵笖杈撳嚭鐨鏄暟瀛鍛?
    绛旓細1銆佹柊寤轰竴涓 瀛楃涓叉暟缁勭殑瀹氫箟涓庤緭鍑 椤圭洰銆2銆佹坊鍔犱竴涓 str.c 鏂囦欢銆3銆佸寘鍚玸tdio.h鍜宻tdlib.h澶存枃浠躲4銆佽緭鍏ain鍑芥暟涓讳綋锛宻ystem()鍜岃繑鍥炲笺5銆佸畾涔変竴涓瓧绗︿覆鍙橀噺str銆6銆佷娇鐢╬rintf()鍑芥暟杈撳嚭瀛楃涓插彉閲弒tr銆7銆佽繍琛岀▼搴忥紝鏌ョ湅杈撳嚭缁撴灉銆
  • C璇█涓,鎬庢牱鎶鏃堕棿鍌ㄥ瓨鍒板崟涓鏁板瓧涓?鏈夎繖鏂归潰鐨勬爣鍑嗕箞?
    绛旓細鏈夊ソ鍑犱釜鍘熷洜浣夸綘鎯虫妸鏃ユ湡杞崲鎴愬崟涓鏁板瓧锛鍖呮嫭涓轰簡鑺傜渷瀛樺偍绌洪棿鎴栬繘琛岀畝鍗曠殑姣旇緝銆傛澶栵紝浣犱篃璁告兂鐢ㄨ浆鎹㈡墍寰楃殑鏁板瓧浣滀负缂栫▼缁撴瀯涓殑涓閮ㄥ垎銆傛棤璁濡備綍锛濡傛灉浣犳兂鐢ㄥ崟涓暟瀛楄〃绀烘棩鏈燂紝浣犲氨闇瑕侀棶涓涓嬭嚜宸变负浠涔堣杩欐牱鍋氾紝浠ュ強浣犳兂鎬庢牱澶勭悊杞崲鎵寰楃殑鏁板瓧銆傚洖绛旇繖浜涢棶棰樺皢鏈夊姪浜庝綘纭畾鍝杞崲鏂规硶鏈濂姐傞...
  • c璇█涓浠庨敭鐩樿緭鍏ュ瓧绗﹁緭鍑轰粬鐨勭被鍨,渚嬪瓧绗涓烘暟瀛鏃 杈撳嚭鏁板瓧
    绛旓細printf("瀛楁瘝\n"); else if(c>='0' && c<='9') printf("鏁板瓧\n"); else if(c==' ') printf("绌烘牸\n"); else printf("鍏跺畠瀛楃\n"); } return 0;}涓鑸兘鏄繖涔堝垎鐨勩
  • C璇█绋嬪簭:杈撳叆涓涓瓧绗,濡傛灉鏄暟瀛瀛楃,鎶瀹冭浆鎹㈡垚鐩稿搴旂殑鏁板瓧骞惰緭鍑...
    绛旓細1銆佹柊寤轰竴涓伐绋嬪拰.c鏂囦欢 锛岃緭鍏ュご鏂囦欢鍜屼富鍑芥暟銆2銆佸0鏄庤璋冪敤鐨勫嚱鏁帮紝瀹氫箟鍙橀噺绫诲瀷銆3銆佽緭鍏ユ暣鏁般4銆佺敤涓涓猧f璇彞鍘诲垽鏂暣鏁版槸鍚︿负璐熸暟锛岃嫢涓鸿礋鏁板垯鐢╬utchar鍑芥暟杈撳嚭涓涓礋鍙枫5銆佽皟鐢ㄤ竴涓嚱鏁般6銆佸畾涔夊嚱鏁扮殑杩斿洖绫诲瀷鍜屽舰鍙傜被鍨嬨7銆侀氳繃if璇彞鍒ゆ柇璇鏁鏄惁浠呭墿涓浣嶆暟锛岃嫢涓嶆槸鍒欐墽琛宔lse璇彞銆8...
  • 鍦C璇█涓,濡備綍鍋氬埌鎶妕xt涓煇涓琛屼腑鐨勪袱涓鏁板瓧鎻愬嚭骞剁浉鍔,鐒跺悗杈撳嚭缁撴灉...
    绛旓細1銆佹墦寮鏂囦欢 2銆佽鍙栨瘡涓琛岋紝浣跨敤姝e垯鎻愬彇闇瑕佺殑鏁板瓧瀛楃涓 3銆佷娇鐢ㄥ瓧绗︿覆杞暟瀛楀嚱鏁帮紙濡傦細atoi()銆乤tof()锛夊緱鍒版暟瀛 4銆佹暟瀛楃浉鍔
  • c璇█涓庢牱鎶鏂囨湰鏂囦欢涓殑涓鍒楁暟瀵煎叆绋嬪簭涓
    绛旓細鍏朵腑锛屽緟鍐欏叆鐨勫瓧绗﹂噺鍙互鏄瓧绗﹀父閲忔垨鍙橀噺锛屼緥濡傦細fputc('a',fp);鍏舵剰涔夋槸鎶婂瓧绗鍐欏叆fp鎵鎸囧悜鐨勬枃浠朵腑銆傚浜巉putc鍑芥暟鐨勪娇鐢ㄤ篃瑕佽鏄庡嚑鐐癸細1) 琚啓鍏ョ殑鏂囦欢鍙互鐢ㄥ啓銆佽鍐欍佽拷鍔犳柟寮忔墦寮锛岀敤鍐欐垨璇诲啓鏂瑰紡鎵撳紑涓涓凡瀛樺湪鐨勬枃浠舵椂灏嗘竻闄ゅ師鏈夌殑鏂囦欢鍐呭锛鍐欏叆瀛楃浠庢枃浠堕寮濮嬨傚闇淇濈暀鍘熸湁鏂囦欢鍐呭...
  • C璇█,濡備綍灏嗘暟瀛娣诲姞鍒颁竴涓凡鏈夌殑瀛楃鏁扮粍涓?
    绛旓細鍏朵粬鍥炵瓟 涓嶈兘鍚,浣犲畾涔夌殑鏃跺欎笉鏄痑[N]鍚,杩欎釜N鏄浐瀹氱殑,浣犺澶氬皯绯荤粺灏辩粰浣犲灏戠┖闂,缁欏畾涔嬪悗鏄笉鑳藉啀鏀圭殑,c灏辨槸杩欐牱,鍒殑璇█鍙互銆(鐢ㄩ摼琛ㄥ彲浠) justinpengChen | 鍙戝竷浜2012-11-25 涓炬姤| 璇勮 3 1 涓烘偍鎺ㄨ崘: 1-10鏁板瓧瀵嗙爜琛ㄧ殑搴旂敤 鍥捐〃鏍囬鎬庝箞娣诲姞 娣诲姞宸叉湁鑱旂郴浜虹┖鐨 鎬庢牱鍦ㄨ〃鏍间腑...
  • ...c璇█鍐欎笁涓鏁板瓧(421)鍑烘潵 濡傛灉鏈 浠g爜鏄庢牱鐨 灏卞儚鐢诲浘閭f牱鐢诲嚭鐫...
    绛旓細鏂规硶寰堝銆傛渶绠鍗曪紝鐩存帴缃戜笂鎼滅储鈥滄眽瀛楄浆涓哄瓧绗﹀瓧鈥濓紝鏈夊湪绾垮伐鍏凤紝杈撳叆鏁板瓧锛屽氨浼氳嚜鍔ㄨ浆鎴愬瓧绗﹀浘鍍忋傜劧鍚庢妸杞崲鍚庣殑瀛楃鍥惧儚澶嶅埗鍑烘潵锛屾斁鍦ㄤ唬鐮佷腑锛岀敤瀛楃涓蹭繚瀛樸傚彲鐩存帴printf鎵撳嵃銆備篃鍙敤浜岀淮鎸囬拡鏁扮粍锛屾妸瀛楃鈥0鈥檦鈥1鈥欏拰 涓婇潰淇濆瓨棰濆瓧绗︿覆鍋氫竴涓搴斿叧绯汇傝繖鏍疯緭鍏ユ暟瀛楋紝閫氳繃寰幆灏辫兘鎵惧埌瀵瑰簲鐨勫瓧绗﹀浘鍍...
  • 鍒氬C璇█,涓嶅お鎳傘傛妸閿洏杈撳叆鐨勭敱鏁板瓧瀛楃缁勬垚鐨勫瓧绗︿覆杞崲涓虹浉搴旂殑...
    绛旓細鏈夊緢澶氭柟娉曪紝鎴戣繖閲岀敤sscanf()鍑芥暟瀹炵幇锛屽畠鐨勪綔鐢ㄦ槸浠庡瓧绗︿覆璇诲彇锛岃屼笉鏄粠鏍囧噯杈撳叆璇诲彇锛岄櫎姝や箣澶栵紝鍜宻canf()鍑芥暟鐩稿悓锛//--- include <stdio.h> int main(void){ char a[80];int b;scanf("%s",a);//杈撳叆瀛楃涓 sscanf(a,"%d",&b);//浠庡瓧绗︿覆a璇诲彇涓涓暣鏁 printf("%d\n",b);...
  • 扩展阅读:c语言将vkwc转换为数字 ... c语言基础知识入门 ... c语言字母对应数字表 ... c语言中怎么输出数字 ... c语言拆分数字百十个 ... c#将字符串转换为数字 ... c字符串转化为数字 ... c语言中 是什么意思及用法 ... c语言中字符转化为数字 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网