C语言中字符/字符串的输入/输出除了调用库函数之外还可以自定义输入/输出函数。
1.代码:
#include <stdio.h>#define String "Hello, C"void put(const char *string){while (*string != '\0')putchar(*string++);}int main(){put(String);return 0;}
2.代码分析:
char类型的指针String最初指向传入参数的首元素,即字符串的首元素的地址,const使得传入的字符串不会被改变。当一个字符串传入时,先打印第一个字符,接着String的值增加1(++的优先级高于*),直到遇到“\0”才跳出循环。
测试结果:
3.拓展应用:统计字符串的个数(不包含’\0’)
#include <stdio.h>#include <string.h>#define String "Hello World"int Count(const char *string){int count = 0;while (*string != '\0'){count++;string++;}return count;}int main(){int count_strlen;int size_of;count_strlen = strlen(String);size_of = sizeof(String);printf("Count函数的统计结果:%d\n", Count(String));printf("strlen函数的统计结果:%d\n", count_strlen);printf("sizeof的统计结果:%d\n", size_of);return 0;}
测试结果: