C语言编程常见问题解答之字符串操作

文章作者 100test 发表时间 2007:03:10 17:37:45
来源 100Test.Com百考试题网


本章集中讨论字符串操作,包括拷贝字符串,拷贝字符串的一部分,比较字符串,字符串右对齐,删去字符串前后的空格,转换字符串,等等。C语言提供了许多用来处理字符串的标准库函数,本章将介绍其中的一部分函数。
在编写C程序时,经常要用到处理字符串的技巧,本章提供的例子将帮助你快速学会一些常用函数的使用方法,其中的许多例子还能有效地帮助你节省编写程序的时间。

6.1 串拷贝(strcpy)和内存拷贝(memcpy)有什么不同?它们适合于在哪种情况下使用?
strcpy()函数只能拷贝字符串。strcpy()函数将源字符串的每个字节拷贝到目录字符串中,当遇到字符串末尾的null字符(\0)时,它会删去该字符,并结束拷贝。
memcpy()函数可以拷贝任意类型的数据。因为并不是所有的数据都以null字符结束,所以你要为memcpy()函数指定要拷贝的字节数。
在拷贝字符串时,通常都使用strcpy()函数;在拷贝其它数据(例如结构)时,通常都使用memcpy()函数。
以下是一个使用strcpy()函数和memcpy()函数的例子:

#include
#include
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
the dest_cust structure. Notice that, just as with strcpy(), the
destination comes first. * /
memcpy(&.dest_cust, &.src_cust, sizeof(CUSTREC)).
printf("Done! I just copied customer number # %d (%s %s). " ,
dest_cust. id, dest_cust. first_name, dest_cust. last_name) .
}

请参见:
6.6怎样拷贝字符串的一部分?
6.7怎样打印字符串的一部分?
6. 2怎样删去字符串尾部的空格?。
C语言没有提供可删去字符串尾部空格的标准库函数,但是,编写这样的一个函数是很方便的。请看下例:
#include
# include

void main (void).
char * rtrim(char * ).
void main(void)
{
char * trail_str = "This string has trailing spaces in it".

相关文章


C语言考试补课笔记-第一天
ASP+Access的安全隐患及对策access教程
C语言编程常见问题解答之字符串操作
二级Access考点分析之数据库和表
C语言编程常见问题解答之编译预处理
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛