strupr:将字符串s转换为大写形式
strlwr:将字符串s转换为小写形式
以上两个没说的!
●strlen功能:返回字符串s的长度,不包括串结束字符'\0',也不是数组长度;
如下几种方式:
如下:
#includestdio.h
#includestring.h
void main()
{
char a[100];
char b[100];
strcpy(a,"我爱-");
strcpy(b,"-美女");
strcat(a,b);
puts(a); /*输出:我爱--美女*/
}
char s1[10]="china";
string.h头文件中包含的字符串函数
void?*memcpy(void?*dest,?const?void?*src,?size_t?n);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void?*memmove(void?*dest,?const?void?*src,?size_t?n);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void?*memchr(const?void?*s,?char?c,?size_t?n);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
void?*memset(void?*,?int,?size_t);//用某种字节内容覆写一段内存空间
char?*strcat(char?*dest,?const?char?*src);//在字符串dest之后连接上src
char?*strncat(char?*dest,?const?char?*src,?size_t?n);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char?*strchr(const?char*?str,?int?ch);//从字符串str头开始查找字符ch首次出现的位置
char?*strrchr(const?char*?str,int?ch);//从字符串str尾开始查找字符ch首次出现的位置
int?strcmp(const?char?*,?const?char?*);//基于字典顺序比较两个字符串
int?strncmp(const?char?*,?const?char?*,?size_t);//基于字典顺序比较两个字符串,最多比较n个字节
int?strcoll(const?char?*,?const?char?*);//基于当前区域设置的字符顺序比较两个字符串
char?*strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_t?strlen(const?char?*);//返回一个字符串的长度
size_t?strspn(const?char?*s,?const?char?*strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值.换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度.strspn为string?span的缩写.不支持多字节字符集.
size_t?strcspn(const?char?*s,?const?char?*strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值.换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度.strcspn为string?complement?span的缩写.不支持多字节字符集.
char?*strpbrk(const?char?*s,?const?char?*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值.strpbrk为string?pointer?break缩写.不支持多字节字符集.
char?*strstr(const?char?*haystack,?const?char?*needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char?*strtok(char?*strToken,?const?char?*strDelimit?);//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串.此函数非线程安全,且不可重入;但MSVC实现时使用了thread-local?static?variable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串.
size_t?strxfrm(char?*dest,?const?char?*src,?size_t?n);//根据当前locale转换一个字符串为strcmp使用的内部格式
①.)字符串操作
strcpy(p, p1) 复制字符串
strncpy(p, p1, n) 复制指定长度字符串
strcat(p, p1) 附加字符串
strncat(p, p1, n) 附加指定长度字符串
strlen(p) 取字符串长度
strcmp(p, p1) 比较字符串
strcasecmp忽略大小写比较字符串
strncmp(p, p1, n) 比较指定长度字符串
strchr(p, c) 在字符串中查找指定字符
strrchr(p, c) 在字符串中反向查找
strstr(p, p1) 查找字符串
strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素
strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移
strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移
* 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符
strtod(p, ppend) 从字符串 p 中转换 double 类型数值,并将后续的字符串指针存储到 ppend 指向的 char* 类型存储.
strtol(p, ppend, base) 从字符串 p 中转换 long 类型整型数值,base 显式设置转换的整型进制,设置为 0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型
atoi(p) 字符串转换到 int 整型
atof(p) 字符串转换到 double 符点数
atol(p) 字符串转换到 long 整型
isalpha() 检查是否为字母字符
isupper() 检查是否为大写字母字符
islower() 检查是否为小写字母字符
isdigit() 检查是否为数字
isxdigit() 检查是否为十六进制数字表示的有效字符
isspace() 检查是否为空格类型字符
iscntrl() 检查是否为控制字符
ispunct() 检查是否为标点符号
isalnum() 检查是否为字母和数字
isprint() 检查是否是可打印字符
isgraph() 检查是否是图形字符,等效于 isalnum() | ispunct()
字符串的函数很多,有输入/输出函数:gets()/puts(),有拷贝函数strcpy(),字符串连接函数:strcat(),字符串比较函数strcmp(),测长度函数:strlen(),大小写转换:strlwr()/strupr()等等,如果调用的话,都要在头文件加预处理命令:
#include
"string.h".
因为c语言中,数组初始化时,如果给定的初始值个数小于数组长度,那么后面的剩余元素将被自动初始化为0,也就是字符串的结束标志'\0'
函数名: strrchr
功 能: 在串中查找指定字符的最后一个出现
用 法: char *strrchr(char *str, char c);
举例:
[cpp] view plain copy
char fullname="./lib/lib1.so";
char *ptr;
ptr = strrchr(fullname,'/');
printf("filename is %s",++ptr);
//运行结果:filename is lib1.so
函数名: strchr
功 能: 在串中查找指定字符的第一个出现
用 法: char *strchr(char *str, char c);
ptr = strrchr(fullname,'.');
printf("after strchr() is %s",++ptr);
//运行结果:after strchr() is /lib/lib1.so
函数名: strtok
用 法: char *strtok(char *s, char *delim);
说明:
void main()
char buf[]="Golden Global View";
char* token = strtok( buf, " ");
while( token != NULL )
printf( "%s ", token );
token = strtok( NULL, " ");
return 0;
/*其结果为:
Golden
Global
View
*/
函数名:strncpy
功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中
用法:char *strncpy(char *dest, char *src, int n);
如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束.
如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节.
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.
返回指向dest的指针.
[c-sharp] view plain copy
#include syslib.h
#include string.h
main()
char *s="abcdefg";
printf("%s/n",buf);
/*运行结果:
abcd
函数名: stpcpy
功 能: 拷贝一个字符串到另一个
用 法: char *stpcpy(char *destin, char *source);
#include stdio.h
int main(void)
char string[10];
char *str1 = "abcdefghi";
stpcpy(string, str1);
printf("%s/n", string);
/*运行结果
abcdefghi
函数名: strcat
功 能: 字符串拼接函数
用 法: char *strcat(char *destin, char *source);
char *blank = " ", *c = "C++", *Borland = "Borland";
strcpy(destination, Borland);
strcat(destination, blank);
strcat(destination, c);
printf("%s/n", destination);
Borland C++
函数名: strcmp
功 能: 串比较
int ptr;
if (ptr 0)
else if(ptr 0)
else
函数名: strncmpi
功 能: 将一个串中的一部分与另一个串比较, 不管大小写
if (ptr == 0)
函数名: strcspn
功 能: 在串中查找第一个给定字符集内容的段
#include alloc.h
int length;
printf("Character where strings intersect is at position %d/n", length);
函数名: strdup
功 能: 将串拷贝到新建的位置处
用 法: char *strdup(char *str);
char *dup_str, *string = "abcde";
dup_str = strdup(string);
printf("%s/n", dup_str);
free(dup_str);
函数名: stricmp
功 能: 以大小写不敏感方式比较两个串
函数名: strerror
功 能: 返回指向错误信息字符串的指针
用 法: char *strerror(int errnum);
#include errno.h
char *buffer;
buffer = strerror(errno);
printf("Error: %s/n", buffer);
函数名: strncmp
int main(void)
return(0);
功 能: 把串中的一部分与另一串中的一部分比较, 不管大小写
函数名: strnset
功 能: 将一个串中的所有字符都设为指定字符
用 法: char *strnset(char *str, char ch, unsigned n);
char *string = "abcdefghijklmnopqrstuvwxyz";
char letter = 'x';
printf("string before strnset: %s/n", string);
printf("string after strnset: %s/n", string);
函数名: strpbrk
功 能: 在串中查找给定字符集中的字符
char *string1 = "abcdefghijklmnopqrstuvwxyz";
if (ptr)
printf("strpbrk found first character: %c/n", *ptr);
printf("strpbrk didn't find character in set/n");
函数名: strrev
功 能: 串倒转
用 法: char *strrev(char *str);
char *forward = "string";
printf("Before strrev(): %s/n", forward);
strrev(forward);
printf("After strrev(): %s/n", forward);
Before strrev(): string
After strrev(): gnirts
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
printf("The substring is: %s/n", ptr);
函数名: strtod
功 能: 将字符串转换为double型值
用 法: double strtod(char *str, char **endptr);
#include stdlib.h
double value;
printf("Enter a floating point number:");
gets(input);
value = strtod(input, endptr);
printf("The string is %s the number is %lf/n", input, value);
函数名: strtol
功 能: 将串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
long lnumber;
/* strtol converts string to long integer */
lnumber = strtol(string, endptr, 10);
printf("string = %s long = %ld/n", string, lnumber);
函数名: strupr
功 能: 将串中的小写字母转换为大写字母
用 法: char *strupr(char *str);
char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
/* converts string to upper case characters */
ptr = strupr(string);
printf("%s/n", ptr);