|
Post by huangno1 on Mar 2, 2017 20:34:59 GMT -8
程式說明
請撰寫 mystrcat() 結合兩個 C-字串(以 '\0' 字元結尾) 。
例如
strcpy(s, "abc");
strcpy(t, "def");
mystrcat(s, t);
會使得 s 變成 "abcdef"。
此外,該函式會回傳目標陣列的起始位址,例如 mystrcat(s, t) 會回傳 s 的起始位址。
以下程式每次讀入兩個字串,將兩個字串結合並輸出。反覆直到輸入兩個空字串(直接按下 Enter)為止。
【注意】此程式中不可呼叫標準函式 strcat(),但歡迎使用 strlen() 和 strcpy()。
#include <stdio.h>
#include <string.h>
char * mystrcat ( char str [ ] , char str1 [ ] )
{
int a = strlen ( str ) ;
int i = a ;
int b = 0 ;
while ( str1 [ b ] != '\0' )
{
str [ i ] = str1 [ b ] ;
i ++ ; b ++ ;
}
str [ i ] = '\0' ;
return str ;
}
int main()
{
char str[2][100];
do
{
gets(str[0]);
gets(str[1]);
printf("%s\n", mystrcat(str[0], str[1]));
}
while (
strlen ( str [ 0 ] ) != 0 || strlen ( str [ 1 ] ) != 0
);
return 0;
}
儲存
|
|