ZKX's LAB

c读取并转换字符串

2020-07-16知识6
C语言如何将一个数字组成的字符串转变成十进制数 办法很多,提供2113三种供参考。一、直接使用5261库函数atoi将数字字符4102串转换成十进制整数1653。代码如下: include\"stdio.h include\"stdlib.h\"/调用库函数atoi要包含这个文件 int main(int argc,char*argv[]){ char a[]=\"478167831;printf(\"%d\\n\",atoi(a));直接调用atoi将a转换为十进制整数 return 0;}二、用库函数sscanf直接将数组中的数字字符串读入十进制整型变量。代码如下: include\"stdio.h int main(int argc,char*argv[]){ char a[]=\"478167831;int x;sscanf(a,\"%d\",&x);调用sscanf,读入时自动转换为int型并由%d控制以十进制赋给变量x printf(\"%d\\n\",x);输出 return 0;}三、自行编写转换代码: include\"stdio.h int main(int argc,char*argv[]){ char a[]=\"478167831;int x,i;for(x=i=0;a[i];(x*=10)+a[i+]-'0');字符与数字的关系是\"字符值-'0'=同名数字 printf(\"%d\\n\",x);输出 return 0;}上述三代码的输出结果如下图: 如何把读取的二进制文件转换成相应的字符串? VB的话,用Chr()或ChrW()函数,ChrW用于中文或其他宽字符 VC的话,用类型转换就可以,如 int a=32;比如a是读取的二进制文件中的数值 char c=(char)a;c就是Ascii码为a所对应的字符 C语言中 先从键盘上获取一串字符串 再将字符串内的每个字符都转换为ASCII码格式 这个问题很简单百 就当你输入的字符串 小于度一百来说 Note:Your choice is C IDE*/ include\"stdio.h include\"string.h void main() { char a[100];int n,i;gets(a);puts(a);n=strlen(a);for(i=0;i;i+) printf(\"%4d\",a[i]);} 要注意的就知是字符和整型是相通道的 呵呵如果你觉得不知内道要输入多长容的串那这样应该可以 Note:Your choice is C IDE*/ include\"stdio.h include\"string.h void main() { int n,i;char a,*p=a;gets(p);n=strlen(p);for(i=0;i;i+) printf(\"%4d\",*p+i);} c语言如何把某个函数名转换为字符串 #include typedef int(*Func)();int func_1(int a);int func_2(int a);int func_3(int a);int func_1(int a){ printf(\"Func:%s a=d\\n\",_func_,a);return 0;} int func_2(int a){ printf(\"Func:%s a=d\\n\",_func_,a);return 0;} int func_3(int a){ printf(\"Func:%s a=d\\n\",_func_,a);return 0;} int main(){ int i=0;Func f[3];f[0]=func_1;f[1]=func_2;f[2]=func_3;for(i=0;i;i+){ f[i](i);} return 0;} 不知道是否能满足你的需求。要注意的是,_func_这个变量是C99的标准,最好在Linux下用GCC进行编译。我是用GCC进行编译,可以顺利读取函数名。 VC 中如何将字符串转换成整型数字 atoi函数是c的函数,它的输入参数是char*类型。你声明了string h变量,string是C 类型,C函数不识别这个C 类型。br/>两种方法 1.按照c方式定义h,char h[20... C语言怎么把字符串转换为可以用于计算的数字 有两种方式,一种是使用常用标准函数库stdlib当中的字符串转换函数,可以把各种类型的字符串转换为相应类型的数字;另外一种是使用输入输出标准函数库stdio当中的sscanf函数。方法一:下列函数可以将字符串转换为数字:函数名 作 用 atof()将字符串转换为双精度浮点型值 atoi()将字符串转换为整型值 atol()将字符串转换为长整型值 strtod()将字符串转换为双精度浮点型值,并报告不能被转换的所有剩余数字 strtol()将字符串转换为长整值,并报告不能被转换的所有剩余数字 strtoul()将字符串转换为无符号长整型值,并报告不能被转换的所有剩余数字方法二: sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。第二个参数可以是一个或多个 {%[*][width][{h|I|I64|L}]type|' '|'\\t'|'\\n'|非%符号} 注: 1、*亦可用于格式中,(即%*d 和%*s)加了星号(*)表示跳过此数据不读入.(也就是不把此数据读入参数中) 2、{a|b|c}表示a,b,c中选一,[d],表示可以有d也可以没有d。3、width表示读取宽度。4、{h|l|I64|L}:参数的size,通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size。5、type:这就很多了... C语言中,读取字符串中的一个位置 #include int fun(char*s) { char t[80];int i,j;for(i=0;s[i];i+)/*将串s拷贝至串t*/ t[i]=s[i];t[i]='\\0';for(i=0,j=0;t[i];i+) 对于数字字符先写一个$符号,再写该数字字符*/ if(t[i]>='0'&t[i]) { s[j+]='$';s[j+]=t[i];} 对于非数字字符原样写入串s*/ else s[j+]=t[i];s[j]='\\0';在串s结尾加结束标志*/ return 0;} int main() { char s[80];printf(\"Enter a string:\");scanf(\"%s\",s);输入字符串*/ fun(s);printf(\"The result:%s\\n\",s);输出结果*/ return 0;} 运行结果: Enter a string:A1B23CD45 The result:A$1B$2$3CD$4$5 扩展资料 1、字符串是由若干有效字符构成且以字符'\\0'作为结束标志的一个字符序列。2、字符串常量是用一对双引号括起来的一串字符,如“happy”。其中'\\0'作为字符串的结束标志,在这里可不显式输出,C编译程序自动在其尾部自动添加字符'\\0'。3、C语言中只提供了字符数据类型,没有提供字符串数据类型,C语言中的字符串是通过字符数据来实现的,所有表示字符串的字符数组的最后一个元素都是空字符(ASCII 码值为0的字符'\\0')。 C语言中怎样最好地从标准输入流中获取字符串,并转换为int数组? include include int main(){ int i;char buffer[256];printf(\"Enter a number:\");fgets(buffer,256,stdin);i=atoi(buffer);printf(\"The value entered is%d.\",i);system(\"pause\");return 0;}其实你的需求很简单只要是用atoi函数就可以轻松的转换string到数组了,我用以上的一小段代码就可以解释明白你的疑惑。没看明白在问我吧!执行结果: Enter a number:233cyuyan The value entered is 233. 函数说明如下:头文件:#include atoi()函数用来将字符串转换成整数(int),其原型为: int atoi(const char*str);【函数说明】atoi()函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\\0')才结束转换,并将结果返回。【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0 C语言如何将字符串转换为十六进制 C语言如何将字符串转换为十六进制,我们将读取一个字符串并将其转换为十六进制字符串。我们将把字符串中的每个字符转换为等效的十六进制值,并将转换后的值插入到字符串中,... C\/C++中字符串与数字相互转换 数字转字符串: 用C++的streanstream: include Include string num2str(double i) { stringstream ss;ss;return ss.str();} 字符串转数字: int str2num(string s) ...

#数字转换#atoi#char#c语言函数#字符串函数

随机阅读

qrcode
访问手机版