字符串操作--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