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;
}

相关推荐
☆璇44 分钟前
【数据结构】排序
c语言·开发语言·数据结构·算法·排序算法
不讲废话的小白2 小时前
给 Excel 整列空格文字内容加上前缀:像给文字穿衣服一样简单!
c语言·excel
艾莉丝努力练剑4 小时前
【LeetCode&数据结构】单链表的应用——反转链表问题、链表的中间节点问题详解
c语言·开发语言·数据结构·学习·算法·leetcode·链表
不知道叫什么呀9 小时前
【C】vector和array的区别
java·c语言·开发语言·aigc
秋说10 小时前
【PTA数据结构 | C语言版】顺序队列的3个操作
c语言·数据结构·算法
秋说12 小时前
【PTA数据结构 | C语言版】字符串插入操作(不限长)
c语言·数据结构·算法
遇见尚硅谷14 小时前
C语言:20250714笔记
c语言·开发语言·数据结构·笔记·算法
koooo~21 小时前
JavaScript 与 C语言基础知识差别
c语言·开发语言·javascript
mit6.82421 小时前
[Nagios Core] 通知系统 | 事件代理 | NEB模块,事件,回调
c语言·开发语言
mit6.82421 小时前
[Nagios Core] 事件调度 | 检查执行 | 插件与进程
c语言·开发语言·性能优化