当前位置:首页 » 编程语言 » c语言中字符串操作函数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中字符串操作函数

发布时间: 2022-06-02 00:38:28

c语言关于字符串的操作函数有哪些

string.h头文件中包含的字符串函数

void*memcpy(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;如果两个地址存在重叠,则最终行为未定义
void*memmove(void*dest,constvoid*src,size_tn);//将n字节长的内容从一个内存地址复制到另一个地址;与memcpy不同的是它可以正确作用于两个存在重叠的地址
void*memchr(constvoid*s,charc,size_tn);//在从s开始的n个字节内查找c第一次出现的地址并返回,若未找到则返回NULL
intmemcmp(constvoid*s1,constvoid*s2,size_tn);//对从两个内存地址开始的n个字符进行比较
void*memset(void*,int,size_t);//用某种字节内容覆写一段内存空间
char*strcat(char*dest,constchar*src);//在字符串dest之后连接上src
char*strncat(char*dest,constchar*src,size_tn);//从src截取n个字符连接在字符串dest之后,返回dest字符串
char*strchr(constchar*str,intch);//从字符串str头开始查找字符ch首次出现的位置
char*strrchr(constchar*str,intch);//从字符串str尾开始查找字符ch首次出现的位置
intstrcmp(constchar*,constchar*);//基于字典顺序比较两个字符串
intstrncmp(constchar*,constchar*,size_t);//基于字典顺序比较两个字符串,最多比较n个字节
intstrcoll(constchar*,constchar*);//基于当前区域设置的字符顺序比较两个字符串
char*strcpy(char*str1,constchar*str2);//将str2拷贝给str1
char*strncpy(char*str1,constchar*str2,size_tn);//截取str2的n个字符拷贝给str1
char*strerror(int);//返回错误码对应的解释字符串,参见errno.h(非线程安全函数)
size_tstrlen(constchar*);//返回一个字符串的长度
size_tstrspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个不出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由strCharSet中的字符构成的子串的最大长度。strspn为stringspan的缩写。不支持多字节字符集。
size_tstrcspn(constchar*s,constchar*strCharSet);//从字符串s的起始处开始,寻找第一个出现在strCharSet中的字符,返回其位置索引值。换句话说,返回从字符串s的起始位置的完全由不属于strCharSet中的字符构成的子串的最大长度。strcspn为stringcomplementspan的缩写。不支持多字节字符集。
char*strpbrk(constchar*s,constchar*strCharSet);//在字符串s中查找strCharSet中任意字符第一次出现的位置的指针值。strpbrk为stringpointerbreak缩写。不支持多字节字符集。
char*strstr(constchar*haystack,constchar*needle);//在字符串haystack中查找字符串needle第一次出现的位置,heystack的长度必须长于needle
char*strtok(char*strToken,constchar*strDelimit);//将一个字符串strToken依据分界符(delimiter)分隔成一系列字符串。此函数非线程安全,且不可重入;但MSVC实现时使用了thread-localstaticvariable因而是线程安全的单仍然是不可重入,即在单线程中不能对两个源字符串交替调用该函数来分析token,应当对一个字符串分析完成后再处理别的字符串。
size_tstrxfrm(char*dest,constchar*src,size_tn);//根据当前locale转换一个字符串为strcmp使用的内部格式

Ⅱ C语言中的字符处理函数

这三个哪个都不是字符处理函数,也不是语句。若在最后都加一个分号,那就是三条语句,也不是函数。这样的请三都是同一个意思,不过要知道*是char的组成部分,即char *型指针pWord。

Ⅲ C语言中有哪些字符串处理函数

你可以看一下头文件string.h和stdio.h里面的相关函数声明,好多好多。
这里就不一一列出了……比如下面列出的只是其中一部分……
_CRTIMP char * __cdecl strcpy(char *, const char *);
_CRTIMP char * __cdecl strcat(char *, const char *);
_CRTIMP int __cdecl strcmp(const char *, const char *);
_CRTIMP size_t __cdecl strlen(const char *);
_CRTIMP char * __cdecl strchr(const char *, int);
_CRTIMP int __cdecl _strcmpi(const char *, const char *);
_CRTIMP int __cdecl _stricmp(const char *, const char *);
_CRTIMP int __cdecl strcoll(const char *, const char *);
_CRTIMP int __cdecl _stricoll(const char *, const char *);
_CRTIMP int __cdecl _strncoll(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicoll(const char *, const char *, size_t);
_CRTIMP size_t __cdecl strcspn(const char *, const char *);
_CRTIMP char * __cdecl _strp(const char *);
_CRTIMP char * __cdecl _strerror(const char *);
_CRTIMP char * __cdecl strerror(int);
_CRTIMP char * __cdecl _strlwr(char *);
_CRTIMP char * __cdecl strncat(char *, const char *, size_t);
_CRTIMP int __cdecl strncmp(const char *, const char *, size_t);
_CRTIMP int __cdecl _strnicmp(const char *, const char *, size_t);
_CRTIMP char * __cdecl strncpy(char *, const char *, size_t);
_CRTIMP char * __cdecl _strnset(char *, int, size_t);
_CRTIMP char * __cdecl strpbrk(const char *, const char *);
_CRTIMP char * __cdecl strrchr(const char *, int);
_CRTIMP char * __cdecl _strrev(char *);
_CRTIMP size_t __cdecl strspn(const char *, const char *);
_CRTIMP char * __cdecl strstr(const char *, const char *);
_CRTIMP char * __cdecl strtok(char *, const char *);
_CRTIMP char * __cdecl _strupr(char *);
_CRTIMP size_t __cdecl strxfrm (char *, const char *, size_t);

Ⅳ C语言字符串操作函数

strupr:将字符串s转换为大写形式
strlwr:将字符串s转换为小写形式
以上两个没说的!

●strlen功能:返回字符串s的长度,不包括串结束字符'\0',也不是数组长度;
如下几种方式:
1)strlen("china") 结果为5
2)char s[20]="china";
strlen(s) 结果为5
3)char *s="china";
strlen(s) 结果为5

●strcpy(字符串1,字符串2): 把字符串2中的所有内容,复制到字符串1中,不管字符串1中原先存放的是什么,全部被覆盖(要注意的是s1的长度要足够容纳s2)

●strcat(字符串1,字符串2): 将两个字符串连接,形成一个新的字符串(要注意的是s1的长度要足够容纳s1和s2,只能字符串和字符串连接,不能直接和整型,float,double等连接,不过可以加上双引号" ",使之变成字符型)
如下:
#include<stdio.h>
#include<string.h>
void main()
{

char a[100];
char b[100];

strcpy(a,"我爱-");
strcpy(b,"-美女");
strcat(a,b);

puts(a); /*输出:我爱--美女*/
}

●strcmp比较字符串的大小,但不是比较s1和s2的长度,而是比较对应字符串中的ASCII码的大小
如下:
char s1[10]="china";
char s2[10]="chz";
strcmp(s1,s2); //返回一个负数,即s1<s2。虽然s1的长度大于s2,但比较的是ASCII码

Ⅳ C语言字符串处理函数




其实那些字符串函数并不复杂。任何一个的实现都不出五行代码:

char *strcpy( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ = *src++ )
;
return destination;
}

char *strcat( char *dst, const char *src ) {
char *destination = dst;
while( *dst++ )
;
strcpy( --dst, src );
return destination;
}

int strcmp( const char *s1, const char *s2 ) {
for( ; *s1 == *s2; s1++, s2++ )
if( *s1 == '\0' ) return 0;
return *s1 - *s2;
}

unsigned strlen( const char *s ) {
const char *t = s;
while( *t++ )
;
return --t - s;
}


Ⅵ c语言考试,问常用字符串操作函数有那几个

1.puts(字符数组)
输出
2.gets(字符数组)
输入
3.strcat(字符数组1,字符数组2)
字符串2接到字符串1的后面
4.strcpy和strncpy(字符数组1,字符串2,m)
将字符串2的前m个字符拷到str1中,最后加'\0'
5.strcmp(字符串1,字符串2)
两字符串比较
6.strlen(字符数组)
字符串的实际长度(不包括'\0')
7.strlwr(字符串)
大写转换为小写
8.strupr(字符串)
小写转换为大写

Ⅶ c语言中对字符串截取的函数!

  1. 根据单个分隔字符用split截取

string st="GT123_1";
string[] sArray=st.split("_");

即可得到sArray[0]="GT123",sArray[1]="1";

2.利用多个字符来分隔字符串

tring str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split(new char[2] { 'j', '_' });
foreach(string e in sArray)
{
Console.WriteLine(e);
}

得到sArray[0]="GTAZB",sArray[1]="Jiang",sArray[2]="Ben",sArray[3]="123";

3根据字符串或字符串组来截取字符串

string str = "GTAZB_JiangjBen_123";
string[] sArray = str.Split( new string[]{"Ji","jB"}, StringSplitOptions.RemoveEmptyEntries);
foreach(string e in sArray)
{
Console.WriteLine(e);
}

得到sArray[0]="GTAZB_",sArray[1]="ang",sArray[2]="en_123";

4提取字符串中的第i个字符开始的长度为j的字符串;

string str = "GTAZB_JiangjBen_123";
int start=3,length=8;
Console.WriteLine(str.Substring(start-1, length));

Ⅷ c语言字符串处理函数有哪些

1、puts函数——输出字符串的函数

一般的形式为puts(字符串组)

作用:将一个字符串输出到终端。如,char一个string,并赋予初值。调用puts(string);进行字符串的输出。

2、gets函数——输入字符串的函数

一般的形式:gets(字符数组)

作用:从终端输入一个字符串到字符数组,并且得到一个函数值成为字符数组的起始地址。

gets(str);

键盘输入,,,,你懂得。

注意:puts和gets函数只能输出或者输入一个字符串。

3、strcat函数——字符串连接函数

一般的形式:strcat(字符数组1,字符数组2);

作用:把两个字符串数组中字符串连接起来,把字符串2连接到字符串1的后面。

说明:字符数组1必须足够大,以便容纳连接后的新字符串。

4、strcpy/strncpy函数——字符串复制函数

一般形式:strcpy(字符数组1,字符串2);

作用:将字符串2复制到字符数组1中去。

如:char str1[10],str2[]="DongTeng";

strcpy(str1,str2);

执行后的结果为:你懂得

注意:

1. 不能用赋值语句直接将一个字符串常量或者字符数组直接给一个字符数组。

2. 用strncpy可以赋值指定的位置的字符。strncpy(str1,str2,3);将str2中的第3个字符复制到str1中。

5、strcmp函数——字符串比较函数

一般形式:strcmp(字符串1,字符串2);

作用:用来比较两个字符串的差异。具有不同的比较规则。

6、strlen函数——测字符串长度的函数

一般形式:strlen(字符数组);

如:char str[10]="DongTeng";

printf("%d",strlen(str));

得到的结果是:5

7、strlwr函数——转换为小写的函数

一般形式:strlwr(字符串);

8、strupr函数——转换为大写的函数

一般形式:strupr(字符串)。

Ⅸ C语言中用函数处理字符串问题

你声明的string是一个只能被读取但不能被修改的字符串常量,你的程序没有错误,但你应该这样改动,char string[100];这样的话,你的Clean就没有问题了,不过建议把空格替换成'\0',这样能避免很多问题。

返回字符串的函数的思路:
1,在函数内建立一个字符数组Temp
2,按位为字符数组Temp赋值
3,返回Temp的首地址
4,在主函数中将Temp的值复制给一个数组。