字符串和整型之间的相互转换

雨点打透心脏的1/2处 2022-11-05 11:59 264阅读 0赞

1.atoi()将字符串转换成整型

头文件:#include

语法:int atoi (const char * str);
该函数会扫描字符串,识别数字和正负符号。

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void) {
  4. char str1[] = "234529";
  5. char str2[] = "-234529";
  6. char str3[] = "aaasdf234529";
  7. char str4[] = "aaasdfcdk";
  8. int p1,p2,p3,p4;
  9. p1 = atoi(str1);
  10. p2 = atoi(str2);
  11. p3 = atoi(str3);
  12. p4 = atoi(str4);
  13. printf("%d\n%d\n%d\n%d", p1,p2,p3,p4);
  14. }

结果:
结果
可见有字母或其他不是数字的字符时,函数就会返回整型0.

2.itoa()将整型数转换为字符串

头文件:#include

语法:
char* itoa(int value,char*string,int radix);
//value: 要转换的整数,string: 转换后的字符串,radix: 转换进制数,如2,8,10,16 进制等。

  1. int main()
  2. {
  3. int number1 = 123456;
  4. int number2 = -123456;
  5. char string[16] = { 0 };
  6. itoa(number1, string, 10);
  7. printf("数字:%d 转换后的字符串为:%s\n", number1, string);
  8. itoa(number1, string, 8);
  9. printf("数字:%d 转换后的字符串为:%s\n", number1, string);
  10. itoa(number2, string, 10);
  11. printf("数字:%d 转换后的字符串为:%s\n", number2, string);
  12. itoa(number2, string, 16);
  13. printf("数字:%d 转换后的字符串为:%s\n", number2, string);
  14. return 0;
  15. }

结果

3,sprintf()把整型打印成字符串,保存在数组中

头文件:#include < stdio.h>

语法:int sprintf(char *str, const char *format, …)
str为要写入的数组,参数不定。

区别:
sprintf():输出到一个字符串数组中。
printf():输出到控制台。

例如:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int number = 123456;
  5. char str[10];
  6. sprintf(str, "%d", number);
  7. printf("%s", str);
  8. return 0;
  9. }

结果
(也可以结合其他字符串,一起写入。)

4.sscanf()将字符串变为整型

头文件:#include< stdio.h>

语法:
int sscanf(const char *str, const char *format,…);

区别:
sscanf():从字符串数组中输入
scanf():由键盘输入

例子:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int number;
  5. char str[]="123456";
  6. sscanf(str, "%d", &number);
  7. printf("%d", number);
  8. return 0;
  9. }

结果
另外sscanf()还有很多用途,

发表评论

表情:
评论列表 (有 0 条评论,264人围观)

还没有评论,来说两句吧...

相关阅读

    相关 go字节数组之间转换

    主机字节序 主机字节序模式有两种,大端数据模式和小端数据模式,在网络编程中应注意这两者的区别,以保证数据处理的正确性;例如网络的数据是以大端数据模式进行交互,而我们的主机