C 语言整数与字符串的相互转换

前言

在 C 语言程序设计中,整数与字符串的相互转换是一项基本操作。无论是处理用户输入,还是进行数据存储和传输,都需要进行这种转换。在本文中,我们将探讨 C 语言中整数与字符串的转换方法,以及它们的应用。

整数转字符串

将整数转换为字符串是一个常见的需求。例如,当我们需要将一个数字打印到屏幕上时,就需要将它转换为字符串。在 C 语言中,我们可以使用 sprintf 函数将整数转换为字符串:

int num = 123;
char str[10];
sprintf(str, "%d", num);

在上面的代码中,sprintf 函数将整数 num 转换为字符串,并存储在 str 变量中。其中,"%d" 是格式化字符串,用于指定将整数转换为字符串的格式。

另外,我们也可以使用 itoa 函数将整数转换为字符串:

int num = 123;
char str[10];
itoa(num, str, 10);

在上面的代码中,itoa 函数将整数 num 转换为字符串,并存储在 str 变量中。其中,10 表示转换后的字符串是用十进制表示的。

字符串转整数

将字符串转换为整数同样是一个常见的需求。例如,当我们需要从用户输入中获取数字时,就需要将输入的字符串转换为整数。在 C 语言中,我们可以使用 atoi 函数将字符串转换为整数:

char str[] = "123";
int num = atoi(str);

在上面的代码中,atoi 函数将字符串 str 转换为整数,并存储在 num 变量中。

另外,我们也可以使用 sscanf 函数将字符串转换为整数:

char str[] = "123";
int num;
sscanf(str, "%d", &num);

在上面的代码中,sscanf 函数将字符串 str 转换为整数,并存储在 num 变量中。其中,"%d" 是格式化字符串,用于指定将字符串转换为整数的格式。

应用举例

下面我们来看一个实际应用的例子。假设我们需要从文件中读取一组数据,并将它们排序后输出到屏幕上。数据文件中每行为一个整数,我们需要将每行读取到的字符串转换为整数,然后进行排序。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LINE_LEN 100

int cmp(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}

int main()
{
    char line[MAX_LINE_LEN];
    int nums[MAX_LINE_LEN];
    int i, n = 0;

    FILE *fp = fopen("data.txt", "r");
    if (fp == NULL)
    {
        printf("Failed to open file.\n");
        return 1;
    }

    while (fgets(line, MAX_LINE_LEN, fp) != NULL)
    {
        nums[n++] = atoi(line);
    }

    fclose(fp);

    qsort(nums, n, sizeof(int), cmp);

    for (i = 0; i 

在上面的代码中,我们使用了 fgets 函数从文件中读取每行数据,并使用 atoi 函数将每行字符串转换为整数。然后,使用 qsort 函数对整数数组进行排序。最后,使用循环将排序后的数组输出到屏幕上。

结语

在本文中,我们介绍了 C 语言中整数与字符串的相互转换方法,以及它们的应用。这些知识点是 C 语言程序设计中非常基础的部分,但也是非常实用的。掌握这些知识点,可以帮助我们更好地处理数据,提高程序的效率。

本文来源:词雅网

本文地址:https://www.ciyawang.com/n8640g.html

本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。

相关推荐