#include<stdio.h> #include<string.h> void main(void) { char s[80],ch; int i,ip,il; printf("输入一串

我就是想做一个插入怎么做求解

循环版:
#include<stdio.h>
#include<string.h>

int main(void)
{
char textBuffer[80];
char character;
int offset;
int i;

printf("Input string:");
gets(textBuffer);
printf("Input character:");
character = getchar();
printf("Input position:");
scanf("%d",&offset);

for(i=strlen(textBuffer)+1;i>offset;i--)
textBuffer[i]=textBuffer[i-1]; //移位
textBuffer[offset]=character;//插入

puts(textBuffer);
}
========================
无循环版::
#include<stdio.h>
#include<string.h>

int main(void)
{
char textBuffer[80];
char tempBuffer[80];
char character;
int offset;

printf("Input string:");
gets(textBuffer);
printf("Input character:");
character = getchar();
printf("Input position:");
scanf("%d",&offset);

strcpy(tempBuffer,textBuffer+offset);//截断
textBuffer[offset]=character;//插入
strcpy(textBuffer+offset+1,tempBuffer);//拼合

puts(textBuffer);
}
================================
memmove版:
#include<stdio.h>
#include<string.h>

int main(void)
{
char textBuffer[80];
char character;
int offset;
int i;

printf("Input string:");
gets(textBuffer);
printf("Input character:");
character = getchar();
printf("Input position:");
scanf("%d",&offset);

memmove(textBuffer+offset+1,
textBuffer+offset,
strlen(textBuffer+offset)+1);
textBuffer[offset]=character;//插入

puts(textBuffer);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-03
没看懂 你说 清楚点 是插入字符串问题么追问

#include
#include
void main(void)
{
char s[80],ch;
int i,ip,il;
printf("输入一串字符");
gets(s);
printf("插入的:");
ch=getchar();
printf("输入要插入的位置");
scanf("%d",&ip);
--ip;
il=strlen(s);
for(i=il;i>il-ip;i--)
{
s[i+1]=s[i];
}
s[ip]=ch;
puts(s);
}

追答

#include
#include

int main()
{
char s[80];
char ch;
int i,
ip,
il;
printf("输入一串字符");
gets(s);
printf("插入的:");
scanf("%c",&ch);
printf("输入要插入的位置");
scanf("%d",&ip);
il = strlen(s);
for( i=il+1;i>ip;i--)
{
s[i] = s[i-1];
}
s[ip] = ch;
printf("%s",s);
getchar();
getchar();
return 0;
}

有不懂的 就问我 这么努力了 给个最佳吧

本回答被提问者采纳
相似回答