c语言合并两个字符串(c语言字符串提取与合成问题)

本文目录
c语言字符串提取与合成问题
按要求,将原字符串拆分成两个字符串分别单独保存。
思路:
一、两个指针分别指向数组第一项和第二项,对应偶数项和奇数项,之后指针同时循环+2取值保存在对应数组。
二、拼接字符串直接使用字符串函数strcat。(不想使用库函数,也可循环赋值)。
#include 《stdio.h》
#include 《string.h》
#define M 20 //数组最大长度
int splitStr(char str,char oStr,char eStr);//拆分str到oStr和eStr
int main()
{
char str[M+1],oStr[M+1],eStr[M+1];//str为原字符串,oStr为奇数字符串,eStr为偶数字符串
printf(“请输入一个字符串(最大%d个字符):“,M);
scanf(“%s“,str);
splitStr(str,oStr,eStr);
printf(“其中奇数项组成的字符串为:%s\n“,oStr);
printf(“其中偶数项组成的字符串为:%s\n“,eStr);
strcat(eStr,oStr);//将偶数组和奇数组组合后放在偶数组中
printf(“将偶数组和奇数组组合后新数组为%s\n“,eStr);
return 0;
}
int splitStr(char str,char oStr,char eStr)
{
int i=0,j=0;
char *op=str+1,*ep=str;//op指向奇数项,ep指向偶数项,循环+2取值
while(1)
{
if(*ep==0) break;
if(*ep) eStr[i++]=*ep;
if(*ep && *op) oStr[j++]=*op;
if(*op==0) break;
ep+=2,op+=2;
}
eStr[i]=0,oStr[j]=0;
return 1;
}
C语言如何合并两个字符串,不用库里的函数
因为char *b = “123\““;所指向的空间,是“常量区”,其中的内容是不允许改写的。
所以,char *a = “DCY666\““;要改成char a = “DCY666\““;字符数组并预留空间,可以增加字符串的内容。
C语言中如何将两个字符串加在一起
可以使用string.h头文件中的strcat函数 char *a=“123“; char *b = “abc“; strcat(a,b)即可,更多的字符串操作可以看一下string.h头文件中 有好多封好的, 如果不想用的话就可以自己写一个函数
函数内容:1.获取两个字符串的总长度,如total_len=len1+len2然后申请一个动态的数组大小为total_len 然后把字符串中的内容依次放进去就可以了。
C语言怎么合并两个字符串
代码:
char str1=“123“;
char str2=“abc“;
strcat(str1,str2);
printf(“%s“,str1);
例如:
#include 《stdio.h》
#include 《string.h》
main()
{
char strDes[N]= “kkkjdah“, strSor[N]=“sdasdaaa“;
strcat(strSor,strDes);//链接
puts(strDes);
puts(strSor);
}
扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串
从键盘上输入两个字符串并合并成一个字符串中c语言
#include“stdio.h“
#include“string.h“
void
main()
{
char
a,b;
int
i,n,m,k;
printf(“请输入第一个字符串(a):“);
gets(a);
n=strlen(a);
printf(“在输入要插入的字符串(b):“);
gets(b);
m=strlen(b);
printf(“请输入要插入的位置(k不能超出字符串a的长度):“);
scanf(“%d“,&k);
for(i=k-1;i《m+n;i++)
{
a[i+k]=a[i];
}
a[i+k]=’\n’;
for(i=0;i《m;i++)
a[i+k-1]=b[i];
puts(a);
printf(“\n“);
}

更多文章:
turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)
2026年10月11日 10:00
金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)
2026年10月11日 09:10
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40



