C语言 转义符\t占用几个空格

       这个问题,在你学习编程过程中可能会考虑到,有时为了字节对齐而使用转义符中\t,但是到底\t占用几个空格呢?

下面我们首先通过程序来体验下,然后在总结

#include <stdio.h>

int main()
{
    printf("123456\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("1234567\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("12345678\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("123456789\t123\t45\n");
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");
    
    printf("123456781234\t123\t45\n");  
    printf("12\t123456\t78\n");
    printf("--------------------------------\n");      
    return 0;
}

通过上面结果我们可以看出来,\t对应空格次数并不是固定的,并不是我们认为的4个空格或者8个空格

那么有什么规律呢。给个简单公式

令  num = |n-8|%8, 其中n表示\t前面的字符占的位置(前面的字符也可能是转换说明,如%d,%10d等)。

那么\t对应的空格的个数 spaceNum,有

所以我们看到当\t前面为123456时,后面有两个空格;当\t前面为1234567时,后面有1个空格,而当前面正好为12345678时,后面跟8个空格

当前面为123456781234时,后面的空格数量为  |12-8|%8=4

  • 51
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
C语言中的转义字符在字符串中占用一个字符的位置。例如,转义字符"\t"表示一个制表符,它在字符串中只占用一个字符的位置。同样地,转义字符"\n"表示一个换行符,也只占用一个字符的位置。所以,字符串"c:\test\628\test.c"的长度是14,因为其中包含了转义字符"\t"和转义字符"\62"。这两个转义字符分别占用了一个字符的位置。\[2\]\[3\] #### 引用[.reference_title] - *1* [特殊转义字符的长度判断C语言](https://blog.csdn.net/qq_40641046/article/details/109495247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C语言中的转义字符 4.8](https://blog.csdn.net/aaaaaaaWoLan/article/details/115519147)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【C语言】-4- 转义字符(学会求字符串长度)](https://blog.csdn.net/weixin_52411749/article/details/123980478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值