自定义函数的输入与输出

不一定非要使用C库中的标准函数,如果无法使用或者不想使用他们,完全可以在你GETCHAR()和PUTCHAR()的基础上自定义所需的函数,假设你需要一个类似put (),但是不会自动添加换行符的函数注意一下程序清单给出了一个这样的表达函数

//put1.c--打印字符串,不添加\n
#include
void put1(const char *string)//不会改变字符串
{
    while (*string != '\0')
        putchar(*string++);
}
指向char指针string 最初指向传入参数的首元素,因为该函数不会改变传入的字符串,所以形参使用了const限定符。打印了首元素的内容后,指针递增1,Hi向下一个元素。while 循环重复这一过程,知道指针指向包含空字符的二元素,记住,++的优先级高于*因此putchar(*string++)打印string 指向的值,递增的是string本身,而不是递增它所指向的字符。

可以把put1.c程序编写字符串处理函数模型,因为这个字符串都可以以空字符结尾,所以不用给函数传递字符串的大小,函数一次处理每个字符,直至遇到空字符。

注意

在该程序清单中使用的是const char*string ,而不是const char sting[],从技术层面上看,两者等价且都有效。使用带括号的某些发是为了提醒用户:该函数处理的是数组,然而要处理字符串,实际参数可以是数组名,用双引号括起来的字符串,或生命为char*类型的额变量,用const char *string 可以提醒用户:实际参数不一定是数组,假设要设计一个类似puts()的函数,而且该函数换给出待打印字符的个数

字符串函数

strlen ()函数

string()函数用于统计字符串的额长度

stract ()函数

用于拼接字符串,函数接受连个字符串作为参数

strncat()函数

函数无法检查第一个数组是否能容纳爹人格字符串,如果分配给第一个数组的空间不够大,多出来的字符一出道响铃存储单元是就会出现问题。

strcamp()函数

strcamp()函数比较的是字符串,不是字符,所以其参数应该是字符串,而不是字符,但是char 类型实际上是整数类型,可以使用关系运损福来比较字符

你可能感兴趣的:(学习)