zoukankan      html  css  js  c++  java
  • 9-字符函数

    一、字符处理函数

    下面介绍的两个字符处理函数都是在stdio.h头文件中声明的。

    1.字符输出函数putchar

    复制代码
    putchar(65); // A
    
    putchar('A'); // A
    
    int a = 65;
    putchar(a); // A
    复制代码

    上面的3种用法,输出的都是大写字母A。

    * putchar一次只能输出一个字符,而printf可以同时输出多个字符

    printf("%c %c %c", 'A', 'B', 'a');

    2.字符输入函数getchar

    char c;
    c = getchar();

    getchar会将用户输入的字符赋值给变量c。

    * getchar函数可以读入空格、TAB,直到遇到回车为止。scanf则不能读入空格和TAB

    * getchar一次只能读入一个字符。scanf则可以同时接收多个字符。

    * getchar还能读入回车换行符,这时候你要敲2次回车键。第1次敲的回车换行符被getchar读入,第2次敲的回车键代表输入结束。

    二、字符串处理函数

    下面介绍的字符串处理函数都是在string.h头文件中声明的,使用前要包含这个头文件。

    1.strlen函数

    * 这个函数可以用来测量字符串的字符个数,不包括

    复制代码
    1 int size = strlen("mj"); // 长度为2
    2  
    3 char s1[] = "lmj";
    4 int size1 = strlen(s1); // 长度为3
    5  
    6 char s2[] = {'m', 'j', '', 'l', 'm', 'j', ''};
    7 int size2 = strlen(s2); // 长度为2
    复制代码

    看一下第7行,strlen函数会从s2的首地址开始计算字符个数,直到遇到空字符为止。因为s2的第1个之前只有mj这2个字符,所以长度为2。

    2.strcpy函数

    1 char s[10];
    2 strcpy(s, "lmj");

    strcpy函数会将右边的"lmj"字符串拷贝到字符数组s中。从s的首地址开始,逐个字符拷贝,直到拷贝到为止。当然,在s的尾部肯定会保留一个。

    * 假设右边的字符串中有好几个,strcpy函数只会拷贝第1个之前的内容,后面的内容不拷贝

    1 char s[10];
    2 char c[] = {'m', 'j', '', 'l', 'm', 'j', ''};
    3 strcpy(s, c);

    最后字符串s中的内容为:mj

    3.strcat函数

    char s1[30] = "LOVE";
    strcat(s1, "OC");

    strcat函数会将右边的"OC"字符串拼接到s1的尾部,最后s1的内容就变成了"LOVEOC"

    strcat函数会从s1的第1个字符开始连接字符串,s1的第1个字符会被右边的字符串覆盖,连接完毕后在s1的尾部保留一个

    * 注意下面的情况

    1 char s1[30] = {'L', 'm', 'j', '', 'L', 'o', 'v', 'e', ''};
    2 strcat(s1, "OC");
    3 printf("%s", s1);

    第1行初始化的s1有2个,经过第2行的strcat函数后,输出结果:

    4.strcmp函数

    * 这个函数可以用来比较2个字符串的大小

    * 调用形式为:strcmp(字符串1, 字符串2)

    * 两个字符串从左至右逐个字符比较(按照字符的ASCII码值的大小),直到字符不相同或者遇见''为止。如果全部字符都相同,则返回值为0。

    1 char s1[] = "abc";
    2 char s2[] = "abc";
    3 char s3[] = "aBc";
    4 char s4[] = "ccb";
    5 
    6 printf("%d, %d, %d", strcmp(s1, s2), strcmp(s1, s3), strcmp(s1, s4));

     输出(DEV C++环境):

     C语言潭浩强那本书是这样写的;
    str1 == str2 return 0
    str1 > str2 return 一个正数
    str1 < str2 return 一个负数

  • 相关阅读:
    NYOJ 10 skiing DFS+DP
    51nod 1270 数组的最大代价
    HDU 4635 Strongly connected
    HDU 4612 Warm up
    POJ 3177 Redundant Paths
    HDU 1629 迷宫城堡
    uva 796
    uva 315
    POJ 3180 The Cow Prom
    POJ 1236 Network of Schools
  • 原文地址:https://www.cnblogs.com/0zcl/p/6044966.html
Copyright © 2011-2022 走看看