将一个字符串插入到另一个字符串的指定位置的题目(用C语言解决)
将指定位置以后的字符分别往后移一个位置,再将要插入的字符串放到指定位置就行了,别忘了最后一个字符要赋为'\0’哦亲~~代码如下,仅供参考~
void insert(char * str,char c,int position)
{
int i;
int len=strlen(str);
for (i=strlen(str)-1;i>=position;i--)
{
str[i+1]=str[i];
}
str[position]=c;
str[len+1]='\0';
}
str就是需要插入的字符串,c是需要插入的字符,position是插入的位置,即字符的下标(从0开始)
嘿嘿,希望对你有用哦~~
void InsertString(char *s1,char s2[],int i)//s1等价与你题目中的"12345",s2等价与你题目中的"ABC",i是要插入的位置{int j,k;char temp[1000];//以下:将s1第i位前的字符复制到temp中for(j=0;j<i-1;j++)temp[j]=s1[j];//以下:将s2复制到temp尾部j--;k=0;while(s2[k]!='\0'){j++;temp[j]=s2[k];k++;}//以下:将s1第i位后复制到temp尾部k=i-1;while(s1[k]!='\0'){j++;temp[j]=s1[k];k++;}//以下:给temp字符串添加结束符j++;temp[j]='\0';//以下:将temp字符串复制给s1
1、参数2去掉与参数1相同的字符串。
2、从指定位置截取字符串的指定长度。
3、从字符串中找到指定字符串的位置后一位开始到结束的字符串。
4、从指定的位置开始截取字符串到字符串结尾处。
5、从字符串找到指定字符串开始截取字符串的结尾。
6、从开始到指定字符串的文件的字符串截取。
7、截取指定2个字符之间的字符串,组合成数组。
void Insert(char*s1,char*s2,int n)
{
char*result=(char*)malloc(20*sizeof(char));
char*temp=result;//保存result的初始地址,因为后面要改变result
//把s1的一部分赋给result
for(int i=0;i<n;i++)
{
*result=*(s1++);
result++;
}
//把s2的所有内容赋给result
while(*s2!='\0')
{
*result=*(s2++);
result++;
}
*result='\0';//字符串结束符
printf("%s
",temp);
}
int main()
{
char*s1=(char*)malloc(20*sizeof(char));
char*s2=(char*)malloc(20*sizeof(char));
int n;
printf("请输入第一个字符串:");
scanf("%s",s1);
printf("请输入第二个字符串:");
scanf("%s",s2);
printf("请输入插入的位置:");
scanf("%d",&n);
Insert(s1,s2,n);
getchar();
system("pause");
return 0;
}
示例运行结果:
请输入第一个字符串:You are ok
请输入第二个字符串:fine and
请输入插入的位置:8
You are fine and ok
请按任意键继续…
扩展资料:
char用法:
C语言中char用于定义字符类型变量或字符指针变量,例如“char a;”则定义了变量a是字符类型,“char*a;”则定义了变量a是字符指针类型。
char是C语言整型数据中比较古怪的一个,其它的如int/long/short等不指定signed/unsigned时都默认是signed,但char在标准中不指定为signed/unsigned,编译器可以实现为带符号的,也可以实现为不带符号的。
关于char还有一个特殊的语言就是char*,它在C语言中有专门的语义,既不同于signed char*,也不同于unsigned char*,专门用于指以'\0'为结束的字符串。
#include <stdio.h>
#include <string>
using namespace std;
void Insert(char* s1,char* s2,int n)
{
char *result = (char*)malloc(20*sizeof(char));
char *temp = result; //保存result的初始地址,因为后面要改变result
//把s1的一部分赋给result
for(int i=0; i<n; i++)
{
*result = *(s1++);
result++;
}
//把s2的所有内容赋给result
while(*s2 != '\0')
{
*result = *(s2++);
result++;
}
*result = '\0'; //字符串结束符
printf("%s",temp);
}
int main()
{
char *s1 = (char*)malloc(20*sizeof(char));
char *s2 = (char*)malloc(20*sizeof(char));
int n;
printf("请输入第一个字符串:");
scanf("%s",s1);
printf("请输入第二个字符串:");
scanf("%s",s2);
printf("请输入插入的位置:");
scanf("%d",&n);
Insert(s1,s2,n);
return 0;
}
编译通过!!有什么不懂可以问我哈
#include<stdio.h>
#include<string.h>
void main()
{
char ch[40],ch2[20],ch3[20],i,j,temp,x;
printf("请输入第一串字符:");
gets(ch);
printf("请输入第二串字符:");
gets(ch2);
printf("请输入插入的位置:");
scanf("%d",&i);
temp = i;
for(j=0;ch[temp] != '\0';j++,temp++)
ch3[j] = ch[temp];
ch3[j]='\0';
for(j=0;j<strlen(ch);j++,i++)
ch[i] = ch2[j];
strcat(ch,ch3);
ch[i] = '\0';
puts(ch);
}
JAVA中怎么向一个字符串的固定位置插入字符串
java字符串中在特定位置插入另一个字符串方式很多,下面介绍2种:一,可以采用StringBuffer或者StringBuilder作为中介完成。因为StringBuffer或者StringBuilder中含有插入字符串的方法insert(int offset, String str);参数offset表示插入的位置,str表示需要插入的字符串,该方法返回值便是插入完成的StringBuffer的...
c语言中如何将一字符串插入另一个字符串中?
int len1,len2;int i,j,k,l;char c[100];len1=strlen(a);len2=strlen(b);for(i=0;i<t-1;i++)c[i]=a[i];for(j=0;j<len2;j++)c[i+j]=b[j];l=0;for(k=t-1;k<len1;k++){ c[i+j+l]=a[k];l++;} c[i+j+l]='\\0';puts(c);} 另外,站长团上有产品...
c语言 将一个字符串接到另一个字符串后面
char *p2=str2;while(*(p1+i)) \/\/这里的原文是一个死循环 i++; \/\/这个i用来定位插入字符的位置,其实就是放在p1最后一个字符的末尾 for(;*(p2)!='\\0';i++) \/\/这里我把++移动到了下一行的*p2后,把==改成了!= (p1+i)=*p2++;(p1+i)='\\0';} ...
...字符串中从第m个字符开始的全部字符复制到另一个字符串
while(n--){ s1++;} s1是char * 类型的, 你把s1想成是: char s1[m+n]的一个数组, s1++ 相当于从s1[0]--->s1[1] ; 用while(n --) 则移动了n次,则移到了s1[n-1]位置
C语言取某个字符后的字符串存到另一个字符串
思路:先遍历字符串,如果找到该字符后,把后面的所有字符复制到另一个字符串。例如:include <stdio.h>#include <string.h>int main (){char ch1[]="123456789",ch2[20],a='4';int i=0,j=0;while(ch1[i++]!=a);while(ch1[i]){ch2[j++]=ch1[i++];}ch2[j]='\\0';puts(ch2)...
怎么把字符串中的一段取出来赋到另一个字符串中
用memcpy函数吧,很简单,看看下面的例子就知道了 memcpy 原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include <string.h> 功能:由src所指内存区域复制count个字节到dest所指内存区域。说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。注意:与strcpy...
java字符串插入另一字符串
如果是指尺寸,即字符串的长度,那么比较尺寸只需要比较它们的 length 属性即可。但如果是指大小,即字符串的内容比较,应该使用 compareTo 方法。至于插入操作,如果是在较大字符串中插入较小字符串,可以将较大字符串使用 split 方法拆分成数组,再将较小字符串插入到指定位置,最后用拼接方法组装回字符...
C++问题在字符串中插入另一个字符串
\/\/string类中提供截取子字符串的函数 include<iostream> include<string> using namespace std;\/\/把b[20]插入到51之间c[20]插入41之间,使a变为”123456789123456789123456789“int main(){ char a[40]="123451234123456789";char b[20]="6789";char c[20]="56789";string sa(a);sa = sa....
...将一个字符串中的内容倒过来再放入另一个字符串中?例如输入234,输出...
字符串的存储方式主要有两种:顺序存储和链接存储。顺序存储方式将字符串的字符连续存储在一个数组中,而链接存储方式则通过节点链接的方式存储字符串。顺序存储方式适合快速访问任意位置的字符,而链接存储方式则适合频繁插入和删除操作。在实际应用中,选择合适的字符串操作方法和存储方式对于提高程序的性能和...
...将一个字符串的第0,2,4,6,8……位置的字符复制到另一个字符串...
include<stdio.h> include<string.h> intmain(){ charstr1[]="123456",str2[7];inti,j=0,len;len=strlen(str1);for(i=len-1;i>=0;i--){ str2[j++]=str1[i];} str2[6]='\\0';printf("%s",str2);return0;} \/\/方法二指针法 include<stdio.h> include<string.h> intmain...