Welcome 歡迎光臨! 愛上網路-原本退步是向前 !

strcat,strcmp,strcpy

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

[ 程式設計 ] 瀏覽次數 : 29 更新日期 : 2024/12/07