c語言實現字串連線
阿新 • • 發佈:2020-12-21
一、假設有兩個字串"abc"和"1234",將它們連線起來並輸出
#include<stdio.h> #include<string.h> int main() { char a[10]="abc"; char b[4]="1234"; int i,la; la=strlen(a); for(i=0;i<4;i++) a[la+i]=b[i]; for(i=0;i<10;i++) printf("%c",a[i]); }
執行結果是:
這個問題不難,但也有幾個細節需要注意:
①陣列b不可以定義為整型陣列,如果寫成int b[4]={1,2,3,4}則輸出時連線不起來,因為與陣列a型別不同;
②輸出時要寫%c,用迴圈語句逐個輸出字元,不能寫成%s或不用迴圈,因為字串沒法一步到位都輸出來。
二、改進上述問題,要求隨機輸入兩個字串,連線起來並輸出。
#include<stdio.h> #include<string.h> int main() { char a[20]={'\0'},b[10]={'\0'};//初始化 //不論字元或數字,都定義為字元型陣列,否則沒法連線 int i,la,lb; printf("輸入兩個字串,用空格隔開:\n"); scanf("%s%s",&a,&b); la=strlen(a);//strlen()函式獲取字串長度,位於庫函式<string.h>中 lb=strlen(b); for(i=0;i<lb;i++) a[la+i]=b[i]; for(i=0;i<(la+lb);i++) printf("%c",a[i]);//逐個輸出字元,用%c而不是%s }
執行結果為: