字符串函数整理

1.str…字符串操作函数

(1)char stpcpy(char *dest,const char *src)

将字符串src复制到dest

(2)char strcat(char *dest,const char *src)

将字符串src添加到dest末尾

(3)char strchr(const char *s,int c)

检索并返回字符c在字符串s中第一次出现的位置

(4)int strcmp(const char *s1,const char *s2)

比较字符串s1与s2的大小,并返回s1-s2

(5)char strcpy(char *dest,const char *src)

将字符串src复制到dest

(6)char strncpy(char *dest,const char *src,size_t maxlen)

复制src中的前maxlen个字符到dest中

(7)size_t strlen(const char *s)

返回字符串s的长度

(8)char *strchr(const char *s,char c);

         查找字符串s中首次出现字符c的位置,返回首次出现c的位置的指针,如果s中不存在c则返回NULL。

(9)char strstr(const char *s1,const char *s2)

扫描字符串s2,并返回第一次出现s1的位置

(10)size_t strcspn(const char *s1,const char *s2)

扫描s1,返回在s1中有,在s2中也有的字符个数

(11)char strdup(const char *s)

将字符串s复制到最近建立的单元

(12)int stricmp(const char *s1,const char *s2)

比较字符串s1和s2,并返回s1-s2

(13)char strncat(char *dest,const char *src,size_t maxlen)

将字符串src中最多maxlen个字符复制到字符串dest中

(14)int strncmp(const char *s1,const char *s2,size_t maxlen)

比较字符串s1与s2中的前maxlen个字符

(15)char strlwr(char *s)

将字符串s中的大写字母全部转换成小写字母,并返回转换后的字符串

(16)int strnicmp(const char *s1,const char *s2,size_t maxlen)

比较字符串s1与s2中的前maxlen个字符

(17)char strnset(char *s,int ch,size_t n)

将字符串s的前n个字符置于ch中

(18)char strpbrk(const char *s1,const char *s2)

扫描字符串s1,并返回在s1和s2中均有的字符个数

       (19)char strrchr(const char *s,int c)

扫描最后出现一个给定字符c的一个字符串s

(20)char strrev(char *s)

将字符串s中的字符全部颠倒顺序重新排列,并返回排列后的字符串

(21)char strset(char *s,int ch)

将一个字符串s中的所有字符置于一个给定的字符ch

(22)size_t strspn(const char *s1,const char *s2)

扫描字符串s1,并返回在s1和s2中均有的字符个数

(23)char strtok(char *s1,const char *s2)

检索字符串s1,该字符串s1是由字符串s2中定义的定界符所分隔

(24)char strupr(char *s)

将字符串s中的小写字母全部转换成大写字母,并返回转换后的字符串

2.现在我们举几个常用的字符串函数的详细例子

(1)函数名: strcpy

功 能: 拷贝一个字符串到另一个

用 法: char *strcpy(char *destin, char *source);

程序例:

#include <stdio.h>

#include <string.h>

int main(void)

{

char string[10];

char *str1 = "abcdefghi";

strcpy(string, str1);

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

return 0;

}

(2)函数名: strcat

功 能: 字符串拼接函数

用 法: char *strcat(char *destin, char *source);

程序例:

#include <string.h>

#include <stdio.h>

int main(void)

{

char destination[25];

char *blank = " ", *c = "C++", *Borland = "Borland";

strcpy(destination, Borland);

strcat(destination, blank);

strcat(destination, c);

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

return 0;

}



(3)函数名: strchr

功 能: 在一个串中查找给定字符的第一个匹配之处\

用 法: char *strchr(char *str, char c);

程序例:

#include <string.h>

#include <stdio.h>

int main(void)

{

char string[15];

char *ptr, c = 'r';

strcpy(string, "This is a string");

ptr = strchr(string, c);

if (ptr)

printf("The character %c is at position: %d\n", c, ptr-string);

else

printf("The character was not found\n");

return 0;

}

(4)函数名: strcmp

功 能:字符串比较

用 法: int strcmp(char *str1, char *str2);

看Asic码,str1>str2,返回值 > 0;两串相等,返回0

程序例:

#include <string.h>

#include <stdio.h>

int main(void)

{

char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";

int ptr;

ptr = strcmp(buf2, buf1);

if (ptr > 0)

printf("buffer 2 is greater than buffer 1\n");

else

printf("buffer 2 is less than buffer 1\n");

ptr = strcmp(buf2, buf3);

if (ptr > 0)

printf("buffer 2 is greater than buffer 3\n");

else

printf("buffer 2 is less than buffer 3\n");

return 0;

}



(5)函数名: strncpy

功 能: 串拷贝

用 法: char *strncpy(char *destin, char *source, int maxlen);

程序例:

#include <stdio.h>

#include <string.h>

int main(void)

{

char string[10];

char *str1 = "abcdefghi";

strncpy(string, str1, 3);

string[3] = '\0';

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

return 0;

}


(6)函数名: strstr

功 能: 在串中查找指定字符串的第一次出现

用 法: char *strstr(char *str1, char *str2);

程序例:

#include <stdio.h>

#include <string.h>

int main(void)

{

char *str1 = "Borland International", *str2 = "nation", *ptr;

ptr = strstr(str1, str2);

printf("The substring is: %s\n", ptr);

return 0;

}

(7)函数名:strlen

用法:size_t strlen(const char *s)

  功能:计算字符串s的(unsigned int型)长度

  说明:返回s的长度,不包括结束符NULL。

程序例子:

#include<string.h>
#include<stdio.h>
int main(void)
{
char*s = "GoldenGlobalView";
printf("%s has %d chars", s, strlen(s));
getchar();
return 0;
}

 



再来介绍一个函数memmove

原型:void *memmove(void *dest,void *src,count);

功能:由src所指内存区域复制count个字节到dest所指内存区域。

程序例子:

#include<stdio.h>

#include<string.h>

int main()

{

char s[]="Golden Golden View";

memmove(s,s+7,strlen(s)+1-7);

printf("%s",s);

getchar();

return 0;

}


很明显,这些字符串函数的头文件必须是#include<string.h>

是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替,如果你想继续使用strcpy的,main前面加上#pragma warning(disable:4996)即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值