#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineN100
voidInsert(char*s)
intmain()
{
charstr[N]
printf("Inputastring:")
gets(str)
Insert(str)
printf("Insertresults:%s\n",str)
return0
}
voidInsert(char*s)
{
charstr[N]
char*t=str
strcpy(t,s)
for(*t!='\0's++,t++)
{
*s=*t
s++
*s=''
}
*s='\0'/*在字符串s的末尾添加字符串结束标志*/
}
扩展资料
C语言通过定义一个char类型的二维数组实现,通过二维数组的行索引可得到数组中的每个字符串,列的大小限定了每个字符串所能包含的最大字符个数,所以采用这种定义方式时,列的大小必须不能小于数组所有字符串的最大长度。
C语言编程定义一个字符串的数组:
str={
“IloveC.”,
“IloveC++.”,
“IloveJAVA.”,
“IlovePython.”,
“IloveLabVIEW.”
}
#include <cstdlib>#include <iostream>
using namespace std
void insert(char *s1,char *s2, int n)
{int i,j,k //i,j分别存放s1和s2的长度,k为循环变量
for(i=0s1[i]!=' 'i++) //测出s1的长度
for(j=0s2[j]!=' 'j++) //测出s2的长度
if(i<1||j<1||n>i||n<0) //如果s1或s2是空串,或者插入位置不在s1范围内
{printf("error!") //显示错误提示
return } //结束函数
for(k=ik>=nk--) //从s1最后一个开始直到第n个字符依次后移
s1[k+j]=s1[k] //后移j个位置
for(k=0k<jk++) //依次把s2内容复制到s1相应位置
s1[k+n]=s2[k]} //完成复制并结束函数
int main()
{char str1[99]="123456789 ",//字符串1
str2[]="ABC " //字符串2
insert(str1,str2,3) //插入
printf("%s",str1) //显示插入后结果
system("PAUSE") //屏幕暂停,以看清运行结果
return 0} //程序结束
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)