C语言中scanf与指针数组的使用技巧

   2024-09-30 7300
核心提示:在C语言中,scanf函数用于从标准输入(通常是键盘)读取数据使用指针数组存储字符串:#includestdio.hint main() {char *names[3

在C语言中,scanf函数用于从标准输入(通常是键盘)读取数据

使用指针数组存储字符串:
#include<stdio.h>int main() {    char *names[3]; // 定义一个指针数组,用于存储字符串    for (int i = 0; i < 3; i++) {        names[i] = malloc(100); // 为每个指针分配内存空间        printf("请输入第%d个名字:", i + 1);        scanf("%s", names[i]); // 使用scanf读取字符串    }    // 打印输入的名字    for (int i = 0; i < 3; i++) {        printf("第%d个名字是:%s\n", i + 1, names[i]);    }    // 释放内存    for (int i = 0; i < 3; i++) {        free(names[i]);    }    return 0;}
使用指针数组存储整数:
#include<stdio.h>int main() {    int n, *numbers;    printf("请输入整数的个数:");    scanf("%d", &n);    numbers = (int *)malloc(n * sizeof(int)); // 为整数分配内存空间    for (int i = 0; i < n; i++) {        printf("请输入第%d个整数:", i + 1);        scanf("%d", &numbers[i]); // 使用scanf读取整数    }    // 打印输入的整数    for (int i = 0; i < n; i++) {        printf("第%d个整数是:%d\n", i + 1, numbers[i]);    }    // 释放内存    free(numbers);    return 0;}
使用指针数组存储浮点数:
#include<stdio.h>int main() {    float *scores;    int n;    printf("请输入成绩的个数:");    scanf("%d", &n);    scores = (float *)malloc(n * sizeof(float)); // 为浮点数分配内存空间    for (int i = 0; i < n; i++) {        printf("请输入第%d个成绩:", i + 1);        scanf("%f", &scores[i]); // 使用scanf读取浮点数    }    // 打印输入的成绩    for (int i = 0; i < n; i++) {        printf("第%d个成绩是:%.2f\n", i + 1, scores[i]);    }    // 释放内存    free(scores);    return 0;}

注意:在使用scanf读取字符串时,需要确保输入的字符串长度不超过分配的内存空间。在实际编程中,为了避免缓冲区溢出,可以使用fgets函数代替scanf读取字符串。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号