十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
自定义函数时字符串的格式:char *function(); char *function(char ch[]) { return ch; } main { char c[]={"ABCDEFG"}; printf("%s",function(c)); }
创新互联建站专注于安次企业网站建设,响应式网站,商城网站制作。安次网站建设公司,为安次等地区提供建站服务。全流程按需策划,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
main里面自己写写
#include stdio.h
#include malloc.h
typedef struct snode
{
char data;
struct snode *next;
} LinkStrNode;
int StrLength(LinkStrNode *s) //求串长
{
int i=0;
LinkStrNode *p=s-next;
while (p!=NULL)
{ i++;
p=p-next;
}
return i;
}
LinkStrNode *DelStr(LinkStrNode *s,int i,int j) //串删去
{
int k;
LinkStrNode *str,*p=s-next,*q,*r;
str=(LinkStrNode *)malloc(sizeof(LinkStrNode));
str-next=NULL;
r=str; //r指向新建链表的尾结点
if (i=0 || iStrLength(s) || j0 || i+j-1StrLength(s))
return str; //参数不正确时返回空串
for (k=0;ki-1;k++) //将s的前i-1个结点复制到str
{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));
q-data=p-data;
r-next=q;r=q;
p=p-next;
}
for (k=0;kj;k++) //让p沿next跳j个结点
p=p-next;
while (p!=NULL) //将结点p及其后的结点复制到str
{ q=(LinkStrNode *)malloc(sizeof(LinkStrNode));
q-data=p-data;
r-next=q;r=q;
p=p-next;
}
r-next=NULL;
return str;
}
int main()
{
SqString s;
int i,j,k;
}
程序的大体思路可以是这样:
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);
}