C语言问题 编写一程序将两个字符串连起来

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题 编写一程序将两个字符串连起来相关的知识,希望对你有一定的参考价值。

1 用strcat函数
2 不用strcat函数

#include <stdio.h>
#include <string.h>
int main ()

    char str1[10],str2[5],*p,i;//这里用str1接收拼接后的字符串,确保str1大小够放!! 注意要留1位保存结束符'\\0'
    strcpy(str1,"abcd");strcpy(str2,"efgh");
    printf("原字符串分别为:%s   %s\\n\\n",str1,str2);

    strcat(str1,str2);
    printf("用strcat拼接后字符串:%s\\n\\n",str1);

    strcpy(str1,"abcd");strcpy(str2,"efgh");
    p=&str1[strlen(str1)];
    for(i=0;i<strlen(str2);i++)
        *p++=str2[i];
    *p=0;
    printf("不用strcat拼接后字符串:%s",str1);
    return 0;

参考技术A

一、用strcat函数:

#include "stdio.h"
#include "string.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567";
printf("%s\\n",strcat(a,b));
return 0;

二、不用strcat函数:

#include "stdio.h"
int main(int argc,char *argv[])
char a[100]="abcdefg",b[]="1234567",*pa=a,*pb=b;
while(*pa)
pa++;
while(*pa++=*pb++);
printf("%s\\n",a);
return 0;

反复看都是今天的提问,提交了变成 2015-12-04的提问了,且已经采纳别人了——百度知道最近怎么了?这么忽悠人!

参考技术B #include<stdio.h>
#include<string.h>
int main(void)
    char *ch1;
    char *ch2;
    printf("请输入第一个字符串:");
    scanf("%s",ch1);
    printf("请输入第二个字符串:");
    scanf("%s",ch2);
    strcat(ch1,ch2);
    printf("%s",ch1);
    return 0;

本回答被提问者和网友采纳
参考技术C #include<stdio.h>
void f(char *a, char *b)


while(*a++);
a--;
while(*a++=*b++);


void main()

char a[100], b[100];
gets(a);
gets(b);
f(a, b);
puts(a);

参考技术D 你的描述不够详细,我写了个给你参考

1 用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
strcat(s1,s2);
cout<<s1<<endl;
return 1;

2 不用strcat函数
#include <string>
#include <iostream>
using namespace std;
int main(void)
char s1[20]="abcd";
char s2[]="def";
char *p;
p=&s1[strlen(s1)];
strcpy(p,s2);
cout<<s1<<endl;
return 1;

c语言把数字字符串中的数字相加的程序

如果有两个数字字符串分别是“1234”和“4567”,求让他们各位各位数相加的程序。(让他们1和4相加,2和5相加……)。不要只限制在这两个数上。谢谢各位了。

代码如下:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main()

   char str[100];

   char buf[10];

   int i;

   int n = 0;

   bool flag = 0;

   int j = 0;

   //gets(str);

   scanf("%s", str);

   for (i = 0; i != strlen(str); ++ i)

   

      if (str[i] >= '0' && str[i] <= '9')

     

         buf[j] = str[i];

         j++;

         flag = 1;

     

      else if (flag)

     

         n += atoi(buf);

         memset(buf,0,10);//清空缓存区

         flag = 0;

         j = 0;

     

   

   printf("%s",buf);

   printf("%d\\n", n);

扩展资料

(C语言)常见字符函数和字符串函数

1、strlen

功能:计算字符串长度,不包含’\\0’

返回值:返回字符串的字符数

说明:strlen() 函数计算的是字符串的实际长度,遇到第一个’\\0’结束;参数指向的字符串必须以 ’ \\0 ‘结束。函数返回值一定是size_t ,是无符号的。如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到’\\0’停止。

sizeof返回的是变量声明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数。

2、strcpy

功 能: 将参数src字符串拷贝至参数dest所指的地址

返回值: 返回参数dest的字符串起始地址

说明:源字符串必须以’\\0’结束。会将源字符串的’\\0’拷贝到目标空间。目标空间必须可变。如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况,在编写程序时需特别留意,或者用strncpy()来取代。

参考技术A #include <stdio.h>

main()

char a[20];
char b[20];
char c[20];
int a_len;
int b_len;
int i;

printf ("please input string a: ");
scanf ("%s", a);
printf ("please input string b: ");
scanf ("%s", b);

a_len = strlen (a);
b_len = strlen (b);

for (i = 0; i < a_len; i++)

if (a[i] < '0' || a[i] > '9')

printf ("输入数字串a有错误%s\n");
return;



memset (c, 0, sizeof (c));
sprintf (c, "%d\n", atol (a)+atol(b));
printf ("相加后的数字=%s\n", c);

1、先输入
2、检查合法性
3、相加输出
参考技术B 最后怎么存放呢??
这是相加的,用两个数组就可以了

#define N 10
main()

int a[N],b[N];
int i,sum;
for(i=0;i<N;i++)
sum=a[i]+b[i];
……
参考技术C 相加之后怎么存放呢?给详细点要求,我好写啊本回答被提问者采纳

以上是关于C语言问题 编写一程序将两个字符串连起来的主要内容,如果未能解决你的问题,请参考以下文章

c语言把数字字符串中的数字相加的程序

C语言的宏定义,字符串连接

C语言编写一个程序,将两个字符串连接起来,不要使用strcat函数

编写一个程序,将两个字符串连接起来,并输出(不要使用strcat函数)。用C语言求解详细过程。

c语言编写一个程序,实现查找一个字符串中的特定字符,并将其删除.

C语言编写字符替换程序。