快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言字符串树立函数 c语言字符串操作相关函数

用C语言怎么写个 字符串插入函数

程序的大体思路可以是这样:

创新互联建站是一家网站设计公司,集创意、互联网应用、软件技术为一体的创意网站建设服务商,主营产品:响应式网站设计成都品牌网站建设全网营销推广。我们专注企业品牌在网站中的整体树立,网络互动的体验,以及在手机等移动端的优质呈现。成都网站制作、网站建设、移动互联产品、网络运营、VI设计、云产品.运维为核心业务。为用户提供一站式解决方案,我们深知市场的竞争激烈,认真对待每位客户,为客户提供赏析悦目的作品,网站的价值服务。

str1是原字符串,str2是待插入的字符串,position是待插入的位置,我们可以这样,用一个指针p_cur指向字符串1 str1中的待插入位置position,另一个指针p_end指向字符串1 str1的尾部,每次插入字符前,把str1中从当前位置开始一直到结束字符全部后移一个位置,空出当前位置,然后把要插入的字符放进这个位置,这样就完成了一个字符的插入,重复这个步骤,直到str2被完全插入。

代码如下:

#include stdio.h

#include string.h

void insert_str(char str1[],char str2[],int position)

{

/*

insert_str()函数

功能:将字符串str2插入到str1的position位置处

参数:char str1,char str2 ,int position

返回值:无

*/

int i;

char *p_end,*p_cur,*p;/*p_end指向第一个字符串的尾部,p_cur指向被插入的位置*/

p_end=str1+strlen(str1)-1;

p_cur=str1+position-1;

for(i=0;str2[i]!='\0';i++)

{

for(p=p_end;p=p_cur;p--)

{

*(p+1)=*p;/*从p_cur到p_end的全部元素后移一个位置,此时p_cur指向的位置就空出来了*/

}

*p_cur=str2[i];/*把字符串2中的字符插入空出来的位置*/

p_cur++;/*p_cur下移一个位置*/

p_end++;/*多了一个字符,因此p_end也下移一个位置*/

}

}

void main()

{

char s1[100],s2[20];

int position;

printf("输入字符串1:\n");

gets(s1);

printf("输入插入位置:");

do

{

scanf("%d",position);

while(getchar()!='\n');/*这一句可以把输入position的时候输入的回车去掉*/

}while(position0||positionstrlen(s1));

printf("输入字符串2:\n");

gets(s2);

insert_str(s1,s2,position);

printf("字符串被插入后变成:\n");

puts(s1);

}

c语言字符串函数有哪些

复制相关函数:memcpy、memmove、strcpy、strncpy

字符串连接函数:strcat、strncat

字符串比较函数:memcmp、strcmp、strcoll、strncmp、strxfrm、

查找函数:memchr、strchr、strcspn、strpbrk、strrchr、strspn、strstr、strtok

其他相关函数:memset、strerror、strlen

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等连接,不过可以加上双引号" ",使之变成字符型)

如下:

#includestdio.h

#includestring.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); //返回一个负数,即s1s2。虽然s1的长度大于s2,但比较的是ASCII码

C语言字符串处理函数

strcpy(string

,string

)---把后1个复制后放入前一个字符串,空间要够

strcat(string

,string

)

---把后1个剪切后放入前一个字符串,空间要够

strcmp(string

,string

)---比较2个字符串,0为相同,0前1个大,0后1个大

strlen(string

)---字符串长度

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拷贝给str1

char *strncpy(char* str1, const char* str2, size_t n);//截取str2的n个字符拷贝给str1

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使用的内部格式


文章题目:c语言字符串树立函数 c语言字符串操作相关函数
标题网址:http://6mz.cn/article/hjighd.html

其他资讯