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)即可