background image

字符串操作--c 语言

 

-------------------------------------------------------------------------------- 
本章集中讨论字符串操作,包括拷贝字符串,拷贝字符串的一部分,比较字符串,字符
串右对齐,删去字符串前后的空格,转换字符串,等等。C 语言提供了许多用来处理字符

 

串的标准库函数,本章将介绍其中的一部分函数。
    在编写 C 程序时,经常要用到处理字符串的技巧,本章提供的例子将帮助你快速学会

 

一些常用函数的使用方法,其中的许多例子还能有效地帮助你节省编写程序的时间。
    6.1 串拷贝(strcpy)和内存拷贝(memcpy)有什么不同?它们适合于在哪种情况下使用? 
    strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,
当遇到字符串末尾的 null 字符(\0)

 

时,它会删去该字符,并结束拷贝。

    memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都以 null 字符结束,
所以你要为 memcpy()

 

函数指定要拷贝的字节数。

      在拷贝字符串时,通常都使用 strcpy()函数;在拷贝其它数据(例如结构)时,通常都
使用 memcpy()

 

函数。

    以下是一个使用 strcpy()函数和 memcpy()

 

函数的例子:

#include <stdio. h> 
#include <string. h> 
typedef struct cust-str { 
    int id ; 
    char last_name [20] ; 
    char first_name[l5]; 
} CUSTREC; 
void main (void); 
void main (void) 

    char * src_string = "This is the source string" ; 
    char dest_string[50]; 
    CUSTREC src_cust; 
    CUSTREC dest_cust; 
    printf("Hello! I'm going to copy src_string into dest_string!\n"); 
    / * Copy src_ string into dest-string. Notice that the destination 
      string is the first argument. Notice also that the strcpy() 
      function returns a pointer to the destination string. * / 
    printf("Done! dest_string is: %s\n" , 
        strcpy(dest_string, src_string)) ; 
    printf("Encore! Let's copy one CUSTREC to another. \n") ; 
    prinft("I'll copy src_cust into dest_cust. \n"); 
    / * First, intialize the src_cust data members. * / 
    src_cust. id = 1 ; 
    strcpy(src_cust. last_name, "Strahan"); 
    strcpy(src_cust. first_name, "Troy"); 
    / * Now, Use the memcpy() function to copy the src-cust structure to