strcat:輸入兩個字串,將第二個字串連接在第一個字串之後,輸出第一個字串。
char * strcat ( char * destination, const char * source );
char text1[20] = "My name.";
char text2[] = "is Evan.";
int n = 4;
printf("%s\n", text1);
strncat(text1, text2, n);
printf("%s", text1);
ANS
My name. My name.is E
=====================
strcpy:將第二個參數的字串複製進第一個參數,並傳回第一個參數
char * strcpy ( char * destination, const char * source );
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main(void) {
/* 將字串 s2 "前 n 個字元複製至陣列 s1 (注意會改變s1)。 並回傳 s1 */
// char* array = strncpy( char *s1, const char *s2, size_t n)
char text1[30] = "adbfdhgsjkjykyt";
char* text2 = "My name.";
printf("%s\n", text1); // 原text1
int n = 5;
strncpy(text1, text2, n);
//text1[n] = '\0'; //注意在做複製的時候若長度不足以包含到"空白字元" 則要手動加入
printf("%s", text1); // text2 覆製且覆蓋原有的 text1
return 0;
}
ANS
adbfdhgsjkjykyt
My nahgsjkjykyt
========================
strcmp :輸入兩個字串,比較兩個字串是否相等,相等就傳回0,第一個字串大於第二個字串傳回正數,相反則傳回負數
int strcmp ( const char * str1, const char * str2 );
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
int main(void) {
/* 比較字串 s1 與 字串 s2 ,若兩字串相等則回傳 0 。 若 s1 < s2 回傳負值; s1 > s2 回傳正值 */
// int Num = strcmp( const char *s1, const char *s2)
=========================================================
char *text1 = "ABCDE";
char *text2 = "ABCDE";
char *text3 = "ABCDD";
char *text4 = "ABCDF";
printf( "%d\n%d\n%d\n", strcmp(text1,text2),
strcmp(text1,text3),
strcmp(text1,text4) );
return 0;
}
ANS
0
1
-1