当前位置:首页>开发>正文

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

2023-04-09 22:19:52 互联网 未知 开发

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

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

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
int memcmp(const void *s1, const void *s2, size_t n)//对从两个内存地址开始的n个字符进行比较
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 *strcpy(char* str1, const char* str2)//将str2拷贝给strchar *strncpy(char* str1, const char* str2, size_t n)//截取str2的n个字符拷贝给strchar *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使用的内部格式

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 _strdup(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语言考试,问常用字符串操作函数有那几个?

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

C语言字符串函数

首先要明白,sizeof不是函数,而是操作符;strlen是函数。
操作符sizeof用来判断对象、类型所占用的内存空间的字节数,strlen是计算一个字符串以字节计的长度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以计算出int、double、char这些类型所占用的字节数分别是4、8、1,而用strlen则是非法的。再如:若有char a[20]="123",那么,strlen(a)的结果是3,而sizeof(a)的结果是20;前者是字符串“123”的长度,后者是为数组a分配的内存空间。还有:当计算一个指向字符串的指针时,sizeof得到的是指针本身的长度即固定为4(32位机),而strlen得到的是指针指向的字符串的长度。如:char a[20]="1234567",*p=a,则,sizeof(p)=4,而strlen(p)=7。似乎复杂了点。记住一个原则就好判断:操作符sizeof用来计算系统为对象本身分配的空间(以字节计),函数strlen用来计算字符串的长度(以字节计)。

C 中的字符串处理函数都有哪些?主要现在想急用 连接字符串 的函数!......谢谢!~

连接是 strcat 把第二个字符串复制到第一个字符串的尾部,并且返回第一个字符串的地址
形式为 strcat(a,b)a为第一个字符串首地址,b为第二个字符串首地址
例如字符串组c[10],d[10]将d连接到c,c的长度加上d的长度不能超过9,因为我这里c声明的是c[10]
只要调用函数strcat(c,d)就可以了,输出的c就是连接后的字符串
strcpy 把第二个字符串复制到第一个字符串结尾,去掉第一个字符串的结尾符
strncpy 把第二个字符串的前n个字符复制到第一个字符串的结尾,同上。
strtok
strchr
strcspn
strpbrk
strrchr
strspn
strstr
strcmp 安字典序 比较两个字符串,大于则返回1,等于返回0,小于返回-strncmp
strlen 统计字符串长度,不包括结尾的
我打的有注释的是比较常用的……
这是书上的……容我一点点打上来……

我漏了你的问题补充了……

你这个的话
有两个字符数组:A[100]="000000",B[4]="acdf",
调用函数后成为A[100]="00acdf"。
第一,B[5]不能为B[4],因为你初始化了4个字符,而系统会在最后接
你这样定义最后会出来随机的东东……

要实行你这样子的连接……好像用不到库函数啊……

你这样子的话
比如你那道题,我直接写给你代码吧
int i,j
i=strlen(A)
j=strlen(B)
i--
while(j--)
{
A[i]=B[j]
i--
}
应该是对的吧……我没调试……有空再说吧……

最新文章