Chinaunix首页 | 论坛 | 博客

CR7

  • 博客访问: 13849
  • 博文数量: 4
  • 博客积分: 1470
  • 博客等级: 上尉
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-05 11:18
文章分类
文章存档

2010年(4)

我的朋友
最近访客

分类: LINUX

2010-10-05 16:57:57

一、puts

名称:

puts

功能: 

向显示器输出字符串。

头文件:

#include .h>

函数原形:

int puts(const char *s);

参数

s    字符串   

返回值: 

成功返回输出的字符数,失败返回EOF

put函数与printf函数在字符串输出中的区别:

puts在输出字符串时,遇到'\0'会自动终止输出,并将'\0'转换为'\n'来输出。

Printf在输出字符串时,遇到'\0'只是终止输出,并不会将'\0'转换为'\n'来输出。

二、strcat

名称:

strcat

功能: 

字符串连接函数

头文件:

#include .h>

函数原形:

char *strcat(char *restrict s1,const char *restrict s2);

参数

s1    字符串1

s2    字符串2

返回值: 

返回字符数组1的首地址

Strcat能够将字符串2连接到字符串1的后面。要注意的是字符串1必须能够装下字符串2。连接前,两串均以'\0'结束,连接后,串1的'\0'被取消,新串最后加‘'\0'

如:

char name[100]="Mike";

char number[20]="001";

strcat(name,number);

puts(name);

输出为:

Mike001

三、strcpy

名称:

strcpy

功能: 

字符串拷贝函数

头文件:

#include .h>

函数原形:

char *strcpy(char *restrict s1,const char *restrict s2);

参数

s1    字符串1

s2    字符串2

返回值: 

返回字符数组1的首地址

strcpy将字符串2,拷贝到字符数组1中去,要注意,字符数组1必须足够大,拷贝时'\0'一同拷贝,不能使用赋值语句为一个字符数组赋值。

四、strcmp

名称:

strcmp

功能: 

字符串比较函数

头文件:

#include .h>

函数原形:

char *strcmp(const char *s1,const char *s2);

参数

s1    字符串1

s2    字符串2

返回值: 

返回int型整数

strcmp对两串从左向右逐个字符比较(ASCLL吗),直到遇到不同字符或'\0'为止。若s1大于s2返回正整数,若s1小于s2返回负整数,若s1等于s2返回0。要注意字符串比较不能用"= =",必须用strcmp.

#include 

#include 

typedef struct

{

    char name[20];

    char num[20];

}USERINFO;

int main()

{

    USERINFO user;

    char newname[ ]="Rose";

    int result;

    strcpy(user.name,"Mike");

    result=strcmp(user.name,newname);

    if(result!=0)

        printf("different person!");

    else

        Printf("the same person!");

五、strlen

名称:

strlen

功能: 

字符串长度函数

头文件:

#include .h>

函数原形:

int strlen(const char *s);

参数

s    字符串

返回值: 

返回字符串实际长度

strlen计算字符串长度并返回,不包含'\0'在内。

如:char str[100]="study";

int length;

length=strlen(str);

printf("%d",length);

输出:5

注意;;;;;;;;;;;;;;;

strcpy 包括\0, srelen 不包括 \0.

六、strtok

名称:

strtok

功能: 

字符串分割函数

头文件:

#include .h>

函数原形:

char *strtok(char *s,const char *delim)

参数

s      欲分割的字符串

delim  分割字符串

返回值: 

返回下一个分割后的字符串指针,如果已无从分割则返回NULL

Strtok可将字符串分割,当strtok在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0字符。

在第一次调用时,strtok必须给予参数s字符串,往后的调用则将参数s设置为NULL.

下面是程序例子:

#include  

#include 

int main()

{

    char s[ ]="ab-cd:de;gh:mnpe;ger-tu";

    char *delim="-:";

    char *p = NULL;

    printf("%s\n",strtok(s,delim));

    while((p=strtok(NULL,delim)))  

        Printf("%s\n",p);

}

输出结果为:

ab

cd

ee;gh

mnpe;ger

tu

一、sprintf

名称:

sprintf

功能: 

格式化字符串复制函数

头文件:

#include .h>

函数原形:

int sprintf(char *s,const char *format,.....);

参数

s       目的字符串数组

format   原字符字符串

返回值: 

成功返回参数str字符串的长度,失败返回-1

sprintf会把参数format字符串转换为格式化数据,然后将结果复制到参数str所指的字符数组,直到出现字符串结束符\0为止.

下面是程序例子:

#include 

#include 

main()

{

    struct tm *t;

    time_t timep;

    char buff[50];

    time(&timep);

    t=localtime(&timep);

    sprintf(buff,"%d:%d:%d",t->tm_hour,t->tm_min,t->tm_sec);

    printf("%s\n",buff);

}

运行结果:

12:33:21

总结sprintf的功能可以分为几点;

格式化数字字符串
sprintf 最常见的应用之一莫过于把整数打印到字符串中,所以,spritnf 在大多数场合可以替代
itoa。如:
//把整数 打印成一个字符串保存在s 中。
sprintf(s, "%d", 123); //产生"123"
连接字符串
sprintf 的格式控制串中既然可以插入各种东西,并最终把它们“连成一串”,自然也就能够连
接字符串,从而在许多场合可以替代strcat,但sprintf 能够一次连接多个字符串(自然也可以同时
在它们中间插入别的内容,总之非常灵活)。比如:
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who, whom); //产生:"I love CSDN. "

打印地址信息

sprintf(s, "%p", &i);

利用sprintf 的返回值
较少有人注意printf/sprintf 函数的返回值,但有时它却是有用的,spritnf 返回了本次函数调用
最终打印到字符缓冲区中的字符数目。也就是说每当一次sprinf 调用结束以后,你无须再调用一次
strlen 便已经知道了结果字符串的长度。如:
int len = sprintf(s, "%d", i);

二、atoi

名称:

atoi

功能: 

将字符串转换成整型数

头文件:

#include .h>

函数原形:

int atoi(const char *nptr);

参数

nptr   字符串 

返回值: 

返回转换后的整形数

atoi会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束符\0时结束转换,并将结束返回.

三、atof

名称:

atof

功能: 

将字符串转换成浮点型数

头文件:

#include .h>

函数原形:

double atoi(const char *nptr);

参数

nptr   字符串 

返回值: 

返回转换后的符点型数

atof会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束符\0时结束转换,并将结果返回.

#include 

int main()

{

    char *a="-100.23";

    char *b="200";

    float c;

    int d;

    c=atof(a);

    d=atoi(b);

    printf("c=%.2f\n",c);

    printf("d=%d\n",d);

}

运行结果:

c=-100.23

d=200

四: 函数 strstr

  功 能: 在串中查找指定字符串的第一次出现
  用 法: char *strstr(char *str1, char *str2);
  strstr原型:extern char *strstr(char *haystack, char *needle);
  用法:#include
  功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。
  说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。

阅读(1388) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~