C语言基础-字符串(二)两个比较(putchar与printf)(sizeof与strlen)

一、 putchar与printf

输出功能比较

printf 可以输出一个任意的字符串,还可以有参数,而putchar只能输出一个字符(

如果在putchar里面输入多个字符,putchar只会输出最后一个)。

    putchar('aaab');
    putchar('\n');
    putchar('opopw');
    putchar('opopw\n');

在这里插入图片描述

返回值比较

printf 的返回值是正常输出的参数的数量,而 putchar 则是是否正常输出

从底层来说,区别更大:
printf 的时间复杂度是 O(nlogn), 而 putchar 复杂度是 O(1),输出句子也只有O(n)
此外,printf 每执行一次,解析一次格式串,而putchar是编译时尽量优化。

总结:

printf功能更强大可以输出各种格式

putchar只能输出单个字符。

因为字符的处理很特殊,所以专门有对字符的处理,如 putchar ,getchar 之类的

二、sizeof与strlen

strlen产生的原因:需要计算字符串中有效字符的个数

sizeof计算的是整个数组的大小包括无效字符’\0’

strlen计算的是数组中有效字符的个数不包括字符’\0’

	char a1[5] = "hi";
    char a2[]  = "hi";
    printf("使用sizeof得到字符串a2中元素的个数为:%d\n",sizeof(a2)/sizeof(char));
	printf("使用sizeof得到字符串a1中元素的个数为:%d\n",sizeof(a1)/sizeof(char));
    printf("使用strlen得到的字符串中元素的个数:%d\n",strlen(a1));
使用场景:协议编写、网络通信。

猜你喜欢

转载自blog.csdn.net/weixin_44933419/article/details/112313712