當前位置:首頁 » 編程語言 » c語言兩個字元串合並

c語言兩個字元串合並

發布時間: 2022-09-09 23:43:43

c語言 字元串合並

////////// 如果通過一個地址返回呢?該怎麼處理啊?
#include<stdio.h>
#include<string.h>
#define M 3
#define N 30

void fun(char a[M][N], char *b)
{
for (int i = 0; i< M; ++ i ){
strcat( b, a[i]); // 這樣子使用.
}
}
int main(int argc, char ** argv )
{
char w[M][N]={"AAAA","BBBBBBB","CC"}, a[100];
int i ;
printf("The string: \n");
for(i=0; i<M; i++){
printf("w[%d] = [%20s] \n", i, w[i]);
}
printf("\n");

//bzero(a, sizeof(a));
memset(a,0, sizeof(a));
fun(w,a);

printf("The A string: ---------> \n");
printf("a = [%30s]\n",a);
return 0;
}

////////////////////////////// 為什麼結果出現錯誤 無法運行??
// 因為 b 沒有給它申請內存, 是個未定義的指針. 肯定會出錯.
// 用 strcat 時, 一定要確保, 目標內存的大小有足夠的空間存放合並後的字元串.
// 如果空間太小, 就會出現內存溢出.

#include<stdio.h>
#include <string.h>
int main( int argc, char ** argv )
{
char *b = NULL;
char a[3][20]={"AAAA","BBBBBBB","CC"};
int len = strlen(a[0]) + strlen(a[1]) + strlen(a[2]) + 1 ; //目標字元串長度.
b = (char *)malloc( len ) ;
memset(b, 0, len); // 清0 ;
strcat(b,a[0]);
strcat(b,a[1]);
strcat(b,a[2]);
printf("%s",b);
free(b); // 要記得 free 哦.
b = NULL;
return 0;
}

㈡ 從鍵盤上輸入兩個字元串並合並成一個字元串中c語言

#include"stdio.h"
#include"string.h"
void
main()
{
char
a[100],b[100];
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");
}

㈢ C語言中,合並兩個字元串為一個新的字元串,確保在新字元串中,兩個字元串的所有字元僅出現一次

#include<stdio.h>
#include <string.h>
int main(){
char s1[]="happy";
char s2[]="NewYear";
char s3[999];
int i,j,c,m=0;
s3[m]=s1[0];m++;
for (j=1;s1[j]!='\0';j++){
c=0;
for (i=0;i<m;i++) if (s3[i]==s1[j]) {c=1;break;};
if (c==0) {s3[m]=s1[j];m++;};
}
for (j=0;s2[j]!='\0';j++){
c=0;
for (i=0;i<m;i++) if (s3[i]==s2[j]) {c=1;break;};
if (c==0) {s3[m]=s2[j];m++;};
}
s3[m]='\0';
printf ("%s",s3);
return 0;
}
輸出: hapyNewYr
----
單個字元比較 用: if (s3[i]==s1[j]) 則相同;else 則不同;

㈣ 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);

}

(4)c語言兩個字元串合並擴展閱讀:

字元串在存儲上類似字元數組,它每一位單個元素都是能提取的,字元串的零位是它的長度,如s[0]=10,這提供給我們很多方便,例如高精度運算時每一位都能轉化為數字存入數組。

通常以串的整體作為操作對象,如:在串中查找某個子串、求取一個子串、在串的某個位置上插入一個子串以及刪除一個子串等。兩個字元串相等的充要條件是:長度相等,並且各個對應位置上的字元都相等。設p、q是兩個串,求q在p中首次出現的位置的運算叫做模式匹配。串的兩種最基本的存儲方式是順序存儲方式和鏈接存儲方式。

㈤ C語言如何合並兩個字元串,不用庫里的函數

因為char *b = "123"";所指向的空間,是「常量區」,其中的內容是不允許改寫的。

所以,char *a = "DCY666"";要改成char a[20] = "DCY666"";字元數組並預留空間,可以增加字元串的內容。

㈥ C語言:編寫一個函數,將兩個字元串合並到另一個字元串中

#include <stdio.h>
#include <string.h>

void catstring(char *str0, int len0, char *str1, int len1, char *str2, int len2)
{
if (len2 <= len0 + len1) {
return;
}
memcpy(str2, str0, len0);
memcpy(str2 + len0, str1, len1);

}

int main()
{
char str0[20] = "Golden";
char str1[20] = "View";
char str2[20] = { 0 };

catstring(str0, strlen(str0), str1, strlen(str1), str2, 20);
printf("str2 = %s\n", str2);
return 0;
}

請採納,謝謝!

㈦ c語言如何合並兩個字元串

如果是C語言,有一個函數是strcat

在函數庫string.h,功能就是合並字元串

例如:

#include<stdio.h>
#include<string.h>

chara[10]={"12"};
charb[10]={"bc"};

intmain()
{
strcat(a,b);
printf("%s ",a);
return0;
}

㈧ 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 ",oStr);

printf("其中偶數項組成的字元串為:%s ",eStr);

strcat(eStr,oStr);//將偶數組和奇數組組合後放在偶數組中

printf("將偶數組和奇數組組合後新數組為%s ",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;

}

熱點內容
ps工作需要什麼配置電腦 發布:2025-01-12 21:52:22 瀏覽:605
福州優信解壓 發布:2025-01-12 21:50:40 瀏覽:429
會員過期緩存的能看嗎不聯網 發布:2025-01-12 21:16:47 瀏覽:768
演算法工作原理 發布:2025-01-12 20:36:38 瀏覽:25
網路訪問監控軟體 發布:2025-01-12 20:26:57 瀏覽:466
養羊啦源碼 發布:2025-01-12 20:25:48 瀏覽:571
軒逸朗逸哪個配置最好 發布:2025-01-12 20:10:00 瀏覽:50
主板存儲器分 發布:2025-01-12 20:04:46 瀏覽:377
資料庫邏輯運算 發布:2025-01-12 20:03:54 瀏覽:572
javawindows伺服器搭建 發布:2025-01-12 19:59:37 瀏覽:571