c语言之字符串处理函数(三)

来源:互联网 发布:js 数组 empty 编辑:程序博客网 时间:2024/05/19 03:19


例3、用一个程序将所有常用字符串处理函数都写出来。

源代码实现及知识点拓展

1、程序源代码

#include <stdio.h>

#include <string.h>

int len1,len2;

int main(int argc,constchar * argv[])

{

    //定义字符数组

    char str1[100] ="we are the best";

    char str2[100];


   //从键盘上接受一个字符串

    printf("请从键盘上输入一个字符串:\n");

    gets(str2);


    //输出字符串

    printf("str1= %s\n",str1);

    printf("str2 = ");

    puts(str2);

    printf("\n");


   //计算字符串长度

    len1 = strlen(str1);

    len2 = strlen(str2);

    printf("str1的长度 %dstr2的长度 = %d\n",len1,len2);


    //字符串连接

    printf("strcat(str1,str2) = %s\n",strcat(str1,str2));

    //字符串拷贝

    printf("strcpy(str1,str2) = %s\n",strcpy(str1,str2));

  

    return 0;

}


2、知识点拓展

2.1

1.#include <stdio.h>  #include <string.h>

  文件包含(#include)

  注:这个知识点的详情请见我的第一篇博文《黑马程序员——c语言之switch与if的使用比较》。若程序有字符串处理函数时,需引用#include<string.h>头文件。

2.2

2.//定义字符数组    char str1[100] = "we are the best";    char str2[100];
   字符数组的定义及初始化

  1、定义字符数组时,应确保数组长度比字符串长度至少多1

  2、定义的同时进行初始化

    方法一:char c[5] = {'l','o','v','e'};//当对全体元素赋值也可以省去长度说明。

    方法二:char c[5] = {"love"};

    方法三:char c[] ="love";//这种方法最简便,我最喜欢使用这方法  

2.3

3.//从键盘上接受一个字符串    printf("请从键盘上输入一个字符串:\n");    gets(str2);

   字符串输入函数gets

   从标准输入设备键盘上输入一个字符串。

   注意:(1)、与getchar()用法的区分,getchar有返回值,char a = getchar();而gets没有返回值,用法是gets(a);

              (2)、gets函数得到一个函数值,即为该字符数组的首地址

              (3)、当输入字符串中含有空格时,输出仍为全部字符串,说明gets函数只以回车作为输入结束。这与scanf函数不同

              (4)、这是个不安全的输入函数,会产生越界问题

2.4

4.//输出字符串    printf("str1= %s\n",str1);    printf("str2 = ");    puts(str2);    printf("\n");

    字符串输出函数puts

    把字符数组中的字符串输出显示器。

    注意:从程序中可以看出puts函数中可以使用转义字符,因此输出结果成为两行。puts函数完全可以由printf函数取代。当需要一定格式时,通常使用printf函数。

2.5

5.//计算字符串长度    len1 = strlen(str1);    len2 = strlen(str2);    printf("str1的长度 = %d,str2的长度 = %d\n",len1,len2);

   测量字符串长度函数strlen

    long int strlen(char *),测量字符串长度(不含字符串结束标志'\0')并作为函数返回值。

2.6

6.//字符串连接    printf("strcat(str1,str2) = %s\n",strcat(str1,str2));

    字符串连接函数strcat

    char * strcat(char * str1,char * str2),把字符数组str2的字符串连接到字符数组str1中字符串的后面,并删去str1的串标志“\0”。本函数返回值是字符串str1的首地址。str1需定义的足够的长度,以便全部装入被连接的字符串。

2.7

7.//字符串拷贝    printf("strcpy(str1,str2) = %s\n",strcpy(str1,str2));

    字符串拷贝函数strcpy

     char * strcopy(char * str1,char * str2),把str2的字符串拷贝到str1中。串结束标志“\0”也一同拷贝。str2也可以是一个字符串常量。这里相当于被一个字符串赋予一个字符数组。

2.8

    字符比较函数strcmp

    注:该知识点的具体用法将在我的下个博客里呈现出来。int strcmp(char * str1,char * str2),按照下标顺序比较两个字符串中的相同下标的每一个字符,并且返回第一对不相同的字符ASCII码差值(str1-str2)。若直到\0都相同,那么返回0

3、心得体会:

       1、在这个例题里,我将字符数组及几乎所有常用的字符串处理函数都结合起来,若初学者看到我这篇博文,能精通这个例题,字符串方面的知识就基本上没问题。

        2、这是我的第3个博客,通过三个博文中自己设计出的三个例题,我将c语言的大部分基础知识已经复习的差不多了,后面我将用一个博文综合出c语言剩下的知识点(结构体,typedef,文件等)。

0 0
原创粉丝点击