C语言:常用技巧及误用

一、字符串存储在数组中

cpp 复制代码
int main()
{
    char* arr[7] = {"xiaoming","zhangsan","李四"};
    printf("%s\n", arr[0]);
    printf("%s\n", arr[2]);
    return 0;
}


二、scanf()函数用法

2.1 scanf()输入字符串

cpp 复制代码
int main()
{
    char arr[100];
    scanf("%s", arr);

    printf("%s\n", arr);
    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
    return 0;
}

2.2 scanf()输入格式用法

%d%d两个连在一起,输入框输入完第一个数字后,换行才能输入第二个

cpp 复制代码
int main()
{
    int a, b;
    scanf("%d%d", &a,&b);
    printf("%d %d\n", a,b);
    return 0;
}

中间使用"-"间隔符,在输入框中输入完第一个数字后,输入"-"后,再输入第二个数字

cpp 复制代码
int main()
{
    int a, b;
    scanf("%d-%d", &a,&b);
    printf("%d %d\n", a,b);
    return 0;
}

若输入1-234-56,并不是a=1,b=2,c=3,d=4...

实际上,在输入完"-"后,234会赋给b,第二个"-"会赋给c,导致格式错误

cpp 复制代码
int main()
{
    int a,b,c,d,e,f;
    scanf("%d-%d%d%d-%d%d", &a,&b, &c, &d, &e, &f);
    return 0;
}


三、 printf()函数用法

3.1 "#"用法

cpp 复制代码
int main()
{
    int n1 = 11,n2 = 2;
    printf("%#03d\n",n1);  //001
    printf("%#02d\n",n2);  //02
    printf("%x\n", n1);    //b
    printf("%#x\n",n1);    //0xb
    return 0;
}

3.2 限定宽度

cpp 复制代码
int main()
{
    int n1 = 123;
    printf("%5d\n",n1);   //"  123"
    printf("%-5d\n", n1); //"123  "
    return 0;
}

3.3 总是显示正负号

cpp 复制代码
int main()
{
    int a = 1,b = -1;
    printf("%+d\n",a);   //+1
    printf("%+d\n",b);   //-1
    return 0;
}

3.4 输出部分字符

cpp 复制代码
int main()
{
    char arr[] = "hello world";
    printf("%.5s\n",arr);   //hello
    return 0;
}


四、数字、字符互转

4.1 字符转数字

cpp 复制代码
int main()
{
    int a = atoi("123");
    int b = atoi("-123");
    int c = atoi("a123");
    int d = atoi("123a");
    printf("%d\n", a);   //123
    printf("%d\n", b);   //-123
    printf("%d\n", c);   //0
    printf("%d\n", d);   //123
    return 0;
}

4.2 数字转字符

cpp 复制代码
int main()
{
    char arr[100];
    int a = 123;
    sprintf(arr, "%d", a);
    printf("%s\n", arr);

    for (int i = 0; arr[i] != '\0'; i++)
        printf("%c ", arr[i]);
    return 0;
}

相关推荐
minji...1 小时前
C语言 函数递归
c语言·开发语言·算法
CHTXRT1 小时前
2025第十六届蓝桥杯大赛(软件赛)网络安全赛 Writeup
c语言·网络·web安全·网络安全·蓝桥杯·wireshark
小智学长 | 嵌入式3 小时前
单片机-89C51部分:4、固件烧录
c语言·单片机·嵌入式硬件
simple_whu4 小时前
C语言标准库函数setlocale用法详解
c语言
清泉-通达信编程专家-苏大毕业5 小时前
N字形上升形态选股代码如何编写?
c语言·开发语言·算法·青少年编程·启发式算法
qq_447429417 小时前
Linux0.11内存管理:相关代码
linux·c语言
梁下轻语的秋缘16 小时前
每日c/c++题 备战蓝桥杯(P1049 [NOIP 2001 普及组] 装箱问题)
c语言·c++·学习·蓝桥杯
加点油。。。。16 小时前
C语言高频面试题——指针函数和函数指针的区别
c语言·面试
lkbhua莱克瓦2418 小时前
用C语言实现——一个中缀表达式的计算器。支持用户输入和动画演示过程。
c语言·开发语言·数据结构·链表·学习方法·交友·计算器
lwewan19 小时前
26考研——存储系统(3)
c语言·笔记·考研