c语言数字和字符的相互转换 C语言如何把一个字符串转换成数字

C\u8bed\u8a00\u7f16\u7a0b\u9898\uff0c\u6570\u5b57\u4e0e\u5b57\u7b26\u600e\u4e48\u8f6c\u6362?

#include "stdio.h"
#include "math.h"
main()
{
char change(int x,int n);
int x,i,j;
char s[8],y;
printf("\u8bf7\u8f93\u5165\u6574\u6570:");
scanf("%d",&x);
for(i=0;i<20;i++)
{
y=change(x,i);
if(y=='\0')
{
s[i]='\0';
break;
}
s[i]=y;
}
for(i=7;i>=0;i--)//\u7531\u4e8e\u5b57\u7b26\u5b58\u50a8\u5230\u5b57\u7b26\u6570\u7ec4\u65f6\u987a\u5e8f\u4e0e\u539f\u6765\u76f8\u53cd\uff0c\u6545\u5728\u6b64\u5c06\u5b57\u7b26\u987a\u5e8f\u5012\u8f93
if(s[i]=='\0')
for(j=i-1;j>=0;j--)
printf("%c",s[j]);
printf("\n");
}
char change(int x,int n)
{
int i;
char g;
for(i=0;i<=n;i++)
{
switch(x%10)
{
case 0 :g='0';break;
case 1 :g='1';break;
case 2 :g='2';break;
case 3 :g='3';break;
case 4 :g='4';break;
case 5 :g='5';break;
case 6 :g='6';break;
case 7 :g='7';break;
case 8 :g='8';break;
case 9 :g='9';break;
}
if(x==0)
{
g='\0';
break;
}
x=x/10;
}
return(g);
}
\u4ee3\u7801\u6bd4\u8f83\u6e23\uff0c\u4f46\u662f\u5927\u6982\u80fd\u591f\u5b9e\u73b0\uff0c\u6570\u5b57\u8303\u56f4\u662fint\u578b\u4e0a\u9650

C\u8bed\u8a00\u4e2d\uff0c\u53ef\u4ee5\u4f7f\u7528atoi\u51fd\u6570\u5c06\u5b57\u7b26\u4e32\u8f6c\u6362\u4e3a\u6570\u5b57\uff0c\u5982atoi("123")\u53ef\u4ee5\u5f97\u5230\u6570\u5b57123\u3002
atoi (\u8868\u793a ascii to integer)\u662f\u628a\u5b57\u7b26\u4e32\u8f6c\u6362\u6210\u6574\u578b\u6570\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5e94\u7528\u5728\u8ba1\u7b97\u673a\u7a0b\u5e8f\u548c\u529e\u516c\u8f6f\u4ef6\u4e2d\u3002int atoi(const char *nptr) \u51fd\u6570\u4f1a\u626b\u63cf\u53c2\u6570 nptr\u5b57\u7b26\u4e32\uff0c\u4f1a\u8df3\u8fc7\u524d\u9762\u7684\u7a7a\u767d\u5b57\u7b26\uff08\u4f8b\u5982\u7a7a\u683c\uff0ctab\u7f29\u8fdb\uff09\u7b49\u3002
\u5982\u679c nptr\u4e0d\u80fd\u8f6c\u6362\u6210 int \u6216\u8005 nptr\u4e3a\u7a7a\u5b57\u7b26\u4e32\uff0c\u90a3\u4e48\u5c06\u8fd4\u56de0\u3002\u7279\u522b\u6ce8\u610f\uff0c\u8be5\u51fd\u6570\u8981\u6c42\u88ab\u8f6c\u6362\u7684\u5b57\u7b26\u4e32\u662f\u6309\u5341\u8fdb\u5236\u6570\u7406\u89e3\u7684\u3002atoi\u8f93\u5165\u7684\u5b57\u7b26\u4e32\u5bf9\u5e94\u6570\u5b57\u5b58\u5728\u5927\u5c0f\u9650\u5236\uff08\u4e0eint\u7c7b\u578b\u5927\u5c0f\u6709\u5173\uff09\uff0c\u82e5\u5176\u8fc7\u5927\u53ef\u80fd\u62a5\u9519-1\u3002

\u6269\u5c55\u8d44\u6599\uff1a
C\u8bed\u8a00\u4e2d\u6570\u5b57\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32\u7684\u65b9\u6848\uff1a
\u4f7f\u7528sprintf\u51fd\u6570\u6765\u5b9e\u73b0\uff0c\u5982sprintf("%d", 123)\u53ef\u4ee5\u5f97\u5230\u5b57\u7b26\u4e32"123"\u3002
sprintf\u6307\u7684\u662f\u5b57\u7b26\u4e32\u683c\u5f0f\u5316\u547d\u4ee4\uff0c\u4e3b\u8981\u529f\u80fd\u662f\u628a\u683c\u5f0f\u5316\u7684\u6570\u636e\u5199\u5165\u67d0\u4e2a\u5b57\u7b26\u4e32\u4e2d\u3002sprintf \u662f\u4e2a\u53d8\u53c2\u51fd\u6570\u3002\u4f7f\u7528sprintf \u5bf9\u4e8e\u5199\u5165buffer\u7684\u5b57\u7b26\u6570\u662f\u6ca1\u6709\u9650\u5236\u7684\uff0c\u8fd9\u5c31\u5b58\u5728\u4e86buffer\u6ea2\u51fa\u7684\u53ef\u80fd\u6027\u3002\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898\uff0c\u53ef\u4ee5\u8003\u8651\u4f7f\u7528 snprintf\u51fd\u6570\uff0c\u8be5\u51fd\u6570\u53ef\u5bf9\u5199\u5165\u5b57\u7b26\u6570\u505a\u51fa\u9650\u5236\u3002
\u53c2\u8003\u8d44\u6599\u6765\u6e90\uff1a\u767e\u5ea6\u767e\u79d1-atoi

#include "stdio.h"

#include "math.h"

main()

{

char change(int x,int n);

int x,i,j;

char s[8],y;

printf("请输入整数:");

scanf("%d",&x);

for(i=0;i<20;i++)

{

y=change(x,i);

if(y=='\0')

{

s[i]='\0';

break;

}

s[i]=y;

}

for(i=7;i>=0;i--)//由于字符存储到字符数组时顺序与原来相反,故在此将字符顺序倒输

if(s[i]=='\0')

for(j=i-1;j>=0;j--)

printf("%c",s[j]);

printf("
");

}

char change(int x,int n)

{

int i;

char g;

for(i=0;i<=n;i++)

{

switch(x%10)

{

case 0 :g='0';break;

case 1 :g='1';break;

case 2 :g='2';break;

case 3 :g='3';break;

case 4 :g='4';break;

case 5 :g='5';break;

case 6 :g='6';break;

case 7 :g='7';break;

case 8 :g='8';break;

case 9 :g='9';break;

}

if(x==0)

{

g='\0';

break;

}

x=x/10;

}

return(g);

}

在C/C++语言中没有专门的字符串变量

通常用字符数组来存放字符串。字符串是以“\0”作为结束符。C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数。

字符串是面试的重点考查部分的相关知识,通过考查字符串的相关知识可以考察程序员的编程规范以及编程习惯。并且其中包括了许多知识点,例如内存越界、指针与数组操作等。许多公司在面试时会要求应聘者写一段复制字符串或字符串子串操作的程序。本章列举了一些与字符串相关的面试题,有些题目要求较高的编程技巧。

以上内容参考:百度百科-字符串



可以使用强制类型转换,例如:

int a=9;

char b;

b=(char)a;  

printf("%c",b);

输出的结果就是9。

在要转换的变量面前加括号,括号里面填目标类型即可。

扩展资料

C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 [1]  目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

参考资料百度百科_C语言



printf("%c",(char)(9+'0'));
或printf("%c",(char)(9+48));//48是‘0’的Ascall码

可以使用强制类型转换,例如int a = 9;printf("a = %c\n",(char)a);

printf("%c",9+'0');由于做输出时,"%c"已经告诉计算机要输出字符类型了,所有直接后面直接跟9 + '0'即可,由于Ascall表中0-9是连续排列的,所以9 + '0'是把字符0对应的数加上9,得到的就是字符9对应的那个数,得到这个数我们可以以很多方式输出,以%c就是字符,以%d就是输出字符9对应的数

  • C璇█瀛楃杞鏁板瓧
    绛旓細鍔熻兘锛鏁板瓧瀛楃涓杞暣鍨媔nt锛屽幓闄ら珮浣0銆傛敞鎰忥細涓嶈杈撳叆瓒呭嚭int鑼冨洿銆俰nclude <stdio.h>#include <string.h>int pw10(int m);//璁$畻10娆℃柟int str2int(char *nums);int main(){ char nums[]="0103456"; int num; printf("鍘熷瓧绗︿覆锛%s\n",nums); num=str2int(nums); ...
  • C璇█涓涓鏁板瓧杞崲瀛楃鐨鍑芥暟
    绛旓細n鏄杞崲鎴瀛楃鐨勬暟瀛锛宻[]鐢ㄦ潵鍌ㄥ瓨杞崲鍚庣殑瀛楃銆傚鏋渟ign=n鏄皬浜庨浂鐨勬暟锛岄偅涔堝厛灏嗗畠鍙栫浉鍙嶆暟锛屼互浣胯浆鎹㈢殑杩囩▼涓璶鏄鏁般備粠do寮濮嬭浆鎹紝杞崲鐨勮繃绋嬫槸锛氬厛鐢╪%10鍙杗鐨勪釜浣嶏紝灏嗕釜浣嶇殑鍊煎姞鍦'0'鐨凙SCII鐮佷笂锛屽皢鍔鍜岃浆鎹鎴愬瓧绗︼紝骞跺瓨杩泂鏁扮粍鐨勭涓涓厓绱犱笂锛屾瘮濡1234567锛屽畠涓10闄ょ殑浣欐暟涓7锛...
  • C璇█缂栧啓绋嬪簭,杈撳叆涓涓瓧绗,濡傛灉鏄鏁板瓧瀛楃,鍒杞崲鎴愬搴旂殑鏁板瓧
    绛旓細1銆佹柊寤轰竴涓伐绋嬪拰.c鏂囦欢 锛岃緭鍏ュご鏂囦欢鍜屼富鍑芥暟銆2銆佸0鏄庤璋冪敤鐨勫嚱鏁帮紝瀹氫箟鍙橀噺绫诲瀷銆3銆佽緭鍏ユ暣鏁般4銆佺敤涓涓猧f璇彞鍘诲垽鏂暣鏁版槸鍚︿负璐熸暟锛岃嫢涓鸿礋鏁板垯鐢╬utchar鍑芥暟杈撳嚭涓涓礋鍙枫5銆佽皟鐢ㄤ竴涓嚱鏁般6銆佸畾涔夊嚱鏁扮殑杩斿洖绫诲瀷鍜屽舰鍙傜被鍨嬨7銆侀氳繃if璇彞鍒ゆ柇璇ユ暟鏄惁浠呭墿涓浣嶆暟锛岃嫢涓嶆槸鍒欐墽琛宔lse璇彞銆8...
  • 涓閬C璇█绋嬪簭濉┖棰,鏁板瓧瀛楃鐩镐簰杞崲
    绛旓細鑻ュ舰鍙俢h涓槸鏁板瓧瀛楃'0'~'9'锛屽垯'0'~'9'锛屽垯'0'杞崲鎴'9','1'杞崲鎴'8'锛'2'杞崲鎴'7'锛屸︹'9'杞崲鎴'0'銆傛墍浠ュ厛鍒ゆ柇鏄惁鍦0~9涔嬮棿锛屼篃灏辨槸 if (ch>='0' && ch<='9')鐒跺悗鍋氳浆鎹傚鏋滀笉鏄瓧绗︼紝鑰屾槸鏁村瀷锛岄偅涔堣鍋鐨勮浆鎹灏辨槸9-ch銆 浣嗚繖閲屾槸瀛楃鍨嬨傛墍浠ヨ鍏堟妸瀛楃杞...
  • C璇█瀛楃杞崲涓鏁板瓧
    绛旓細include<stdio.h>#include<string.h>int str2int(char *ch);//瀛楃鍨鏁板瓧杞暣鍨嬫暟瀛梚nt p10(int m);//璁$畻10鐨勬鏂癸紝pow鍑芥暟璁$畻10娆℃柟鏈夎宸紝閲嶅啓鍑芥暟int main(){ char ch[]="234"; int n; n=str2int(ch); printf("n=%d\n",n); return 0;}int str2int(char *...
  • C璇█涓濡備綍瀹炵幇浠庢暣鍨鏁板瓧12345鍒瀛楃涓12.345鐨勮浆鎹
    绛旓細int i = 12345;char str[100];sprintf(str, "%0.3f", ((float)i)/1000);浠ヤ笂鏄畝鍗曠殑鏁板瓧杞崲, 鍏堟妸int绫诲瀷杞彉涓篺loat, 鐒跺悗闄や互1000, 鍐嶄綔涓烘诞鐐规暟杈撳嚭鍒皊tr.骞朵笉闇瑕佺敤鍒版媶鍒瀛楃涓.char num[] = "12345";char str[100];sprintf(str, "%s", num);sprintf(str+2, ".%s", num+...
  • C璇█涓暟瀛濡備綍杞崲鎴瀛楃涓
    绛旓細include<stdio.h>int main(void){int x;printf("璇疯緭鍏鏁板瓧\n");scanf("%d",&x);printf("瀛楃涓涓%c\n",x);return 0;}
  • C璇█鎬庝箞鎶瀛楃涓茶浆鎹涓哄彲浠ョ敤浜庤绠楃殑鏁板瓧
    绛旓細锛1锛変娇鐢ㄥ父鐢ㄦ爣鍑嗗嚱鏁板簱stdlib褰撲腑鐨瀛楃涓茶浆鎹鍑芥暟锛屽彲浠ユ妸鍚勭绫诲瀷鐨勫瓧绗︿覆杞崲涓虹浉搴旂被鍨嬬殑鏁板瓧銆傦紙2锛変娇鐢ㄨ緭鍏ヨ緭鍑烘爣鍑嗗嚱鏁板簱stdio褰撲腑鐨剆scanf鍑芥暟銆傜敤鏍囧噯搴撲腑鐨剆scanf鍑芥暟锛堝叾涓牸寮忔帶鍒瀛楃鐨浣跨敤鏂规硶鍜宻canf涓鑷达紝%d璇诲崄杩涘埗鏁存暟锛%x璇16杩涘埗鏁存暟锛夈備緥濡傦細char s[] = {"92283976 73b1c080 1e...
  • C璇█涓鎬庝箞灏嗕竴涓暣鏁瀛楃涓茶浆鎹涓轰竴涓鏁
    绛旓細include<stdio.h> //鎶婁竴涓暣鏁瀛楃涓茶浆鎹涓轰竴涓暟銆俰ntascii_to_integer(char*string){ intvalue;value=0;//閫愪釜鎶婁竴涓暣鏁板瓧绗︿覆杞崲涓轰竴涓暟銆倃hile(*string>='0'&&*string<='9'){ value*=10;value+=*string-'0';string++;} //閿欒妫鏌ワ細濡傛灉鐢变簬閬囧埌涓涓潪鏁板瓧瀛楃鑰岀粓姝紝鎶婄粨鏋...
  • C璇█缂栫▼瀹屾垚灏嗕竴涓换鎰忔鏁存暟杞崲鎴愮浉搴旂殑瀛楃涓.鐢ㄥ嚱鏁
    绛旓細toString(x,str); printf("杞崲鎴瀛楃涓: %s\n",str); return 0;}void toString(__int64 x,char *p){ int i,t,r,l; //鍒濆鍖 for(i=0;i<LEN;i++) p[i]='\0'; //杞崲 t=1; while(t<=x) t*=10; t/=10; l=0;...
  • 扩展阅读:c语言ascii码表图 ... c语音读取数字和字母 ... c语言字母对应数字表 ... c#字符串长度 ... c语言必背100代码 ... c语言码值转换 ... 数字大小写转换器 ... c++数字转换大写字母 ... c语言中字符转化为数字 ...

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