c语言 transform

99ANYc3cd6
预计阅读时长 9 分钟
位置: 首页 C语言 正文

数据类型转换

显式转换(强制类型转换)

int a = 5;
float b = (float)a / 2;  // 将int转为float,避免整数除法

隐式转换(自动类型提升)

int a = 5;
float b = a / 2.0f;  // 自动将a转为float参与运算

字符串转换

字符串转数字

#include <stdlib.h>
#include <stdio.h>
int main() {
    char str[] = "123";
    int num = atoi(str);      // 转为int
    double d = atof(str);     // 转为double
    long l = atol(str);       // 转为long
    printf("%d %lf %ld\n", num, d, l);
    return 0;
}

数字转字符串

#include <stdio.h>
int main() {
    int num = 42;
    char str[20];
    sprintf(str, "%d", num);  // 将数字转为字符串
    printf("String: %s\n", str);
    return 0;
}

数组/字符串处理

字符大小写转换

#include <ctype.h>
#include <string.h>
void to_upper(char *str) {
    for (int i = 0; str[i]; i++) {
        str[i] = toupper(str[i]);  // 转为大写
    }
}
int main() {
    char text[] = "Hello";
    to_upper(text);
    printf("%s\n", text);  // 输出: HELLO
    return 0;
}

数组元素转换(如平方)

#include <stdio.h>
void transform_array(int arr[], int size, int (*func)(int)) {
    for (int i = 0; i < size; i++) {
        arr[i] = func(arr[i]);
    }
}
int square(int x) { return x * x; }
int main() {
    int arr[] = {1, 2, 3, 4};
    transform_array(arr, 4, square);
    for (int i = 0; i < 4; i++) {
        printf("%d ", arr[i]);  // 输出: 1 4 9 16
    }
    return 0;
}

自定义转换函数

进制转换(如十进制转二进制)

#include <stdio.h>
void decimal_to_binary(int num) {
    if (num > 1) {
        decimal_to_binary(num / 2);
    }
    printf("%d", num % 2);
}
int main() {
    int num = 10;
    printf("Binary: ");
    decimal_to_binary(num);  // 输出: 1010
    return 0;
}

使用标准库函数

qsort 中的转换(排序时转换数据)

#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
    return (*(int *)a - *(int *)b);  // 升序排序
}
int main() {
    int arr[] = {4, 2, 9, 1};
    qsort(arr, 4, sizeof(int), compare);
    for (int i = 0; i < 4; i++) {
        printf("%d ", arr[i]);  // 输出: 1 2 4 9
    }
    return 0;
}

场景 方法
数据类型转换 强制类型转换 (type)var 或隐式转换
字符串 ↔ 数字 atoi, atof, sprintf, sscanf
字符串处理(大小写等) toupper, tolower, strtok
数组元素转换 循环遍历 + 自定义函数或指针函数
进制转换 递归或循环算法
排序转换 qsort + 自定义比较函数

根据具体需求选择合适的转换方式,如果需要更复杂的转换(如JSON解析、XML处理),建议使用第三方库(如cJSON)。

c语言 transform
(图片来源网络,侵删)
c语言 transform
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
dede网站如何被挂马?安全漏洞在哪?
« 上一篇 03-02
C语言groupCount是什么?如何实现?
下一篇 » 03-02

相关文章

取消
微信二维码
支付宝二维码

目录[+]