c语言字符串转整型
c语言中提供了一些函数可以将字符串转换成整型,这对于编写需要处理数字的程序非常有用。下面介绍几种常用的字符串转整型的方法。
1. atoi函数
atoi函数可以将字符串转换成整型,其定义如下:
```c
int atoi(const char *nptr);
```
其中参数nptr是指向要转换的字符串的指针。该函数将从字符串的开头开始解析,直到遇到非数字字符为止。如果字符串中的第一个字符不是数字字符,那么该函数会返回0。
例如,以下代码将字符串'123'转换成整型:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = '123';
int num = atoi(str);
printf('%d
', num);
return 0;
}
```
输出结果为:
```
123
```
2. strtol函数
strtol函数也可以将字符串转换成整型,不过相比atoi函数,它更为通用。其定义如下:
```c
long int strtol(const char *nptr, char **endptr, int base);
```
其中参数nptr是指向要转换的字符串的指针,参数base是数字基数(2~36之间),表示要转换的字符串中的数字是以什么进制表示的。例如,如果base为10,那么该函数将会将字符串中的数字当做十进制数来处理。
如果参数endptr不是NULL,则该函数还会将指向转换后的字符串结束位置的指针存储到endptr指向的位置。
例如,以下代码将字符串'1101'转换成二进制数:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = '1101';
char *endptr;
long int num = strtol(str, &endptr, 2);
printf('%ld
', num);
return 0;
}
c语言定义一个字符串 ```
输出结果为:
```
13
```
3. sscanf函数
sscanf函数可以从一个字符串中读取指定格式的数据,它的定义如下:
```c
int sscanf(const char *str, const char *format, ...);
```
其中参数str是指向要读取的字符串的指针,参数format是格式字符串,用于指定要读取的数据类型和数据格式。
例如,以下代码将字符串'1,2,3,4,5'转换成整型数组:
```c
#include <stdio.h>
#define MAX_SIZE 10
int main()
{
char str[] = '1,2,3,4,5';
int arr[MAX_SIZE];
int len = sscanf(str, '%d,%d,%d,%d,%d', &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);
for (int i = 0; i < len; i++)
{
printf('%d ', arr[i]);
}
printf('
');
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
总结:
以上是c语言中常用的字符串转整型的方法,不同的方法适用于不同的场景。在实际编程中,需要根据具体的需求来选择合适的方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论