数组问题,c语言输入两个字符串,要求把第二个字符串的奇数位字符组成新字符串拼接到第一个字符串后面。

作者&投稿:崇俩 (若有异议请与网页底部的电邮联系)
c语言 输入一个字符串,分别将第奇数个,第偶数个字符选出放入两个数组中~

#include
#include
#include

#define N 1024

int main()
{
char a[N] = {0}, b[N] = {0}, c[N] = {0};
char *p = a;
int n;

printf("请输入字符串: ");
gets(a);
printf("
");

while(*p) {
n = p - a;
if(n % 2 ==0)
b[n/2] = *p;
else
c[n/2] = *p;

p++;
}
b[n/2 + 1] = 0;
c[n/2 + 1] = 0;

printf("原始字符串是: %s
", a);
printf("奇数位字符串是: %s
", b);
printf("偶数位字符串是: %s
", c);

getchar();
getchar();

return 0;
}

代码:
char str1="123";
char str2="abc";
strcat(str1,str2);
printf("%s",str1);
例如:
#include
#include
main()
{
char strDes[N]= "kkkjdah", strSor[N]="sdasdaaa";
strcat(strSor,strDes);//链接
puts(strDes);
puts(strSor);
}

扩展资料:
字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
参考资料来源:百度百科-字符串

#include<stdio.h>
void main() { char str1[256],str2[256],i,j;
  gets(str1); gets(str2);
  i=0; while ( str1[i]!=0 ) i++;
  j=0;
  while ( str2[j]!=0 ) {
    if ( j%2==1 ) { str1[i]=str2[j]; i++; }
    j++; 
  }
  str1[i]=0;
  printf("%s
",str1);
}




c语言 跪求:输入M个数从中取N个数进行组合并输出所有组合项
典型的组合问题,解法有递归、回溯等等 递归法较简单,代码如下:void combine(int a[], int n, int m, int b[], int M);参数:a 存放候选数字 n 总项数 m 取出项数 b 存放选出结果 M = m include "stdio.h"define MAX 100 void combine(int a[], int n, int m, int b[], ...

数组问题(c语言),如何让输入者定义个数,并输入数值,形成数组
严格意义上讲,c语言里面定义数组时其长度不能为变量,必须为固定值,因为c语言程序在定义数组时,必须先给数组开辟一个内存空间。不过,你所提的要求还是可以实现的,一般的做法是,可以先假设一个较大的数(不超过你所想输入的输入的数组长度的最大值MXLENGTH,)作为初始定义时数组大小,然后在输入...

如何用c语言实现多组数据输入,每组数据一行每行数据个数任意
典型的方法是:例如每组数据第一个要输入的参数是p,则程序框架会这么写:while(scanf("%d", &p) == 1){ \/\/这里是其他参数的输入和算法过程 } 当第一行是三个数你可能会这么做:当然了,刚刚那种办法是可以的,但为了使程序更漂亮:while(scanf("%d%d%d", &a, &b, &c) == 3)如果会使用...

用C语言编写一个程序:输入除数(5)和余数(4),求被除数和商,一共有多少...
看看合适不:include <stdio.h> int main (){ int i, n, m, count = 0;printf("请输入除数和余数:\\n");scanf("%d%d", &n, &m);for (i = 0; i < 1000; i++){ if (i % n == m){ count++;} } printf ("\\n1000以内成立组数为:%d\\n", count);return 0;} ...

如何解决C语言程序输入两数组找不同的问题
同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出样例:3 5 -15 6 4 1 我的想法是先拿A数组去跟B数组比一遍,然后再反过来比一遍,把不是共有的数放到C数组中,最后消去数组C中相同的数输出,这样输出的就不会存在同一个数了 ...

C语言 ,输入a1,a2,a3。。a20,从大到小排序后输出,并且输出现在每个元 ...
include<stdio.h> struct abc{ \/\/定义结构体 int a,b;};int main(){int i,j;struct abc arr[21];for(i=1;i<21;i++) \/\/共20个数据,放在arr[1]~arr[20]{arr[i].a=i; \/\/输入时的编号 scanf("%d",&arr[i].b); \/\/输入的数据 } for(i=1;i<21;i++) ...

C语言中如何实现多组数据输入输出?
C语言中实现多组数据输入输出主要有两种方式: 1.首先输入一个n,表示将有n个输入输出,例如: #include <stdio.h>int main(){ int n,a; scanf("%d",&n); while(n--){ scanf("%d",&a); printf("输出:%d\\n",a); } return 0;}\/*运行结果:3255输出:255156输出:156125输出:125 *\/ 2.使用...

c语言数组问题,原本想输入三个数,结果却要输入4个数
第一次 输入 3 接下来 ( i<(j=3) )循环 3次 所以 总共是 4次输入

C语言问题,任意输入十个数,去掉其中最大值和最小值,求剩余数的平均值...
方法实现有多种:一、最直观的方式:1、将输入的十个数,存到数组中;2、遍历数组,找到最大值和最小值;3、从数组中将最大值和最小值移除;4、将剩余的8个数值累加,并将和值除以8,得到平均值;5、输出结果。二、优化方式:分析原始算法,需要循环多次,包括输入,查找最值,移除,累加等。

C语言:输入一组数,统计其中奇数和偶数的个数,知道遇到回车为止。 怎 ...
\/ 输入一组数,统计奇数和偶数的个数.\/ include<stdio.h> int main(void){ char ch;int num;int even_num = 0;\/\/纪录偶数个数 int old_num = 0;\/\/奇数个数.int other = 0;\/\/其它字符个数 printf("请输入一组数字(回车则表示结束!): \\n\\t");do{ do{ ch = getchar();}while(...

黑水县13236387213: c语言程序 输入两个字符串 要求连续输出 必须用函数解决 帮忙看下我的那里出错__ -
向哑加衡: #include void f(char str1[],char str2[]) {char a[110]={'\0'};strcat(a,str1);strcat(a,str2);puts(a); } void main() {char str1[50],str2[50],*p;printf("请输入第 1 字符串:");gets(str1);printf("请输入第 2 字符串:");gets(str2);printf("连...

黑水县13236387213: 编写一个C程序,任意输入两个字符串,存放在a,b两个数组中.把较短的字符串放在a数组中,较长的放在b数组 -
向哑加衡: 告诉你一个笨办法,不过很简单: 1.定义两个临时的数组; 2.输入这两个字符串,保存到临时的数组中; 3.判断字符数组最后的下标; 4.把长的放在a中,短的放在b中.一个大体思路,应该可以帮到你了~

黑水县13236387213: C语言编写一个程序输入两个字符串1和字符串2(两个字符串长度不超过20),把字符串2连接到字符串1后面,并输出 -
向哑加衡: 说白了就是strcatchar *strcat(char *strDest, const char *strSrc) //将源字符串加const,表明其为输入参数{char *address = strDest; //该语句若放在assert之后,编译出错assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的...

黑水县13236387213: 如何用C语言数组编写程序,将两个字符串连接起来 -
向哑加衡: #include 方法一:如mtcat所说,直接用strcat函数 方法二:编程实现strcat的功能 void main() { char s1[80],s2[80]; int i=0,j=0; puts("input two strings:"); gets(s1); gets(s2); while(s1[i]!='\0') i++; while((s1[i++]=s2[j++])!='\0'); printf("result:%s\n",s1); }

黑水县13236387213: 设有两个字符串a和b,要求将a、b串对应字符中的较小者存在数组c的对应位置上(c语言) -
向哑加衡: #include <stdio.h> #include <string.h> void main(){char a[80],b[80],c[80];int lena,lenb,i,j,k;gets(a);gets(b);lena=strlen(a);lenb=strlen(b);i=j=k=0;while (i<len(a) && j<len(b)){if (a[i]<b[j]){c[k]=a[i]; i++; k++;}else{c[k]=b[j];j++;k++;}}c[k]='\0';puts(c); } }

黑水县13236387213: 输入两个字符串,要求输出长度较长的那个字符串. -
向哑加衡: 都可以的,你搞错了吧!! int strlen0(const char *s) { int i=0; if(!s)return 0; while(*s++)i++; return i; } int strlen1(const char *s) { int i=0; if(!s)return 0; for(;*s;s++)i++; return i; } int strlen2(const char *s) { int i=0; if(!s)return 0; for(;*s++;)i++; return i; } int ...

黑水县13236387213: C语言中如何定义两个字符数组并用scanf输入? -
向哑加衡: #include <stdio.h> #include <stdlib.h> int main() { int n, *a, i; printf("请输入数组长度:"); scanf("%d", &n); a = malloc(sizeof(int) * n); /*分配内存*/ printf("请输入%d个数:\n", n); for(i = 0; i < n; i++) scanf("%d", a + i); printf("您输入的数是:\n"); for(i = 0; i < n; i++) printf("%d ", a[i]); free(a); /*释放内存*/ return 0; }

黑水县13236387213: 输入两个字符串,使用指针p将两个字符串按次序复制到数组c中. 例:输入“zhe"和"jiang",将"zhejiang"保存 -
向哑加衡: #include char *string1 = "zhe"; char *string2 = "jiang"; char achA[200] = {0}; int main(void) { char *p = 0; int i = 0; for (i = 0,p = string1; *p;p++,i++) { achA[i] = *p; } for (p = string2; *p;p++,i++) { achA[i] = *p; } achA[i] = 0; printf(achA);return 0; }

黑水县13236387213: C语言编程,输入两个字符串,比较他们的大小并输出比较结果 -
向哑加衡: 如果只是问个算法,我可以告诉你,但是如果是你要全部 ,那就不可以了,作业要自己做的啊! 如果你要用户输入2个字符串作比较的话 可以用“ ”来区分字符串1与字符串2 然后把2个字符串存到2个数组里去比 int i=1,j=1; char a[20],b[20] if (c=getchar()!=" ") then { a[i]=c; i++; } else { b[j]=c; j++; } 然后用for循环一个一个比他们的大小就可以了,如果有一个大了就return 大的值,如果遇到一个数组为空了,也return 另外一个字符串就好了. 其它的要你自己想了,如果全告你,那你也还是什么也学不会,算法告你了就可以了.给不给分你自己看着办吧

黑水县13236387213: 输入两个字符串,将它们拼接起来,放在一个新的数组中 -
向哑加衡: #include<stdio.h> int main() {int i=0,j=0,index;char a[10]="abc";char b[10]="def";char c[50]=""; while(a[i]!='\0')//获取长度{i++;}while(b[j]!='\0'){j++;}for(index=0;index<i;index++ ){*(c+index)=*(a+index);}for(index=0;index<j;index++ ){*(c+index+i)=*(b+index);}printf("%s",c); }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网