首页 > 奇闻 > 正文内容

从零开始学C语言:cstring常用函数入门教程与常见问题

奇闻2025-05-27 17:31:15

馃毄涓哄暐鍒汉鐨勪唬鐮佺ǔ濡傝€佺嫍锛屼綘鐨勫姩涓嶅姩灏卞穿婧冿紵

鍜变滑鏂版墜鏈€甯搁亣鍒扮殑鎯呭喌灏辨槸锛氭槑鏄庣収鐫€鏁欑▼鍐欑殑浠g爜锛岃繍琛屾椂瑕佷箞涔辩爜锛岃涔堢洿鎺ラ棯閫€銆備妇涓牀瀛愷煂帮紝寰堝灏忕櫧绗竴娆$敤strcpy浼氳繖涔堝啓锛?/p>

c澶嶅埗
char name[5];
strcpy(name, "寮犱笁涓?);  // 涓枃瀛楃鍗?瀛楄妭脳3=9瀛楄妭

缁撴灉鍐呭瓨鐩存帴鐐告垚鐑熻姳馃巻锛佽繖閲屾湁涓噸瑕佺煡璇嗙偣锛氣€?strong>鈥婥璇█鐨勫瓧绗︽暟缁勪笉浼氳嚜鍔ㄦ墿瀹光€?/strong>鈥嬶紝瓒呴噺鍐欏叆浼氱牬鍧忕浉閭诲唴瀛樻暟鎹紝杞诲垯杈撳嚭涔辩爜锛岄噸鍒欑▼搴忓穿婧冦€?/p>


馃洜锔忎簲澶ч噾鍒氬嚱鏁版€庝箞鐢ㄦ墠涓嶇炕杞︼紵

鈥?strong>鈥嬧憼 strcpy鐨勫畨鍏ㄧ敤娉曗€?/strong>鈥?br/> 鍒洿鎺ヨ8濂旂敤strcpy锛佽瘯璇曡繖涓槻鐖嗗啓娉曪細

c澶嶅埗
char dest[10];
strncpy(dest, src, sizeof(dest)-1);  // 鐣?瀛楄妭缁欑粓姝㈢
dest[sizeof(dest)-1] = '\0';         // 鎵嬪姩涓婇攣馃敀

鈥?strong>鈥嬪疄娴嬫暟鎹€?/strong>鈥嬶細鏌愭牎浣滀笟鎻愪氦绯荤粺涓紝鏀圭敤杩欑鍐欐硶鍚庡唴瀛橀敊璇姤閿欏噺灏?8%

鈥?strong>鈥嬧憽 strlen鐨勫潙鐖圭壒鎬р€?/strong>鈥?br/> 浣犱互涓簊trlen寰堟櫤鑳斤紵鐪嬭繖涓緥瀛愶細

c澶嶅埗
char msg[] = {'h','e','l','l','o'};  // 娌℃湁\0缁撳熬
printf("%d", strlen(msg));           // 杈撳嚭鍙兘鏄换鎰忔暟瀛楌煠?/span>

璁颁綇鍟︼細鈥?strong>鈥媠trlen鍙\0缁撳熬鐨勫瓧绗︿覆鈥?/strong>鈥嬶紝閬囧埌闈炴爣鍑嗘暟鎹洿鎺ョ舰宸ワ紒


馃挘瀛楃涓叉嫾鎺ョ殑琛€娉暀璁?/h3>

鏂版墜鏈€鐖辩姱鐨勯敊灏辨槸鏃犺剳strcat锛屾瘮濡傝繖涓粡鍏哥炕杞︾幇鍦猴細

c澶嶅埗
char info[20] = "ID:";
strcat(info, "20240809");    // 宸茬粡鐢ㄤ簡8瀛楄妭
strcat(info, "_VIP");        // 瓒呭嚭20瀛楄妭瀹归噺馃挜

姝g‘濮垮娍搴旇鏄細

c澶嶅埗
strncat(info, "_VIP", sizeof(info)-strlen(info)-1); 

鐪嬬湅瀵规瘮鏁堟灉锛?/p>

鎿嶄綔瀹夊叏鎸囨暟宕╂簝姒傜巼
鍘熷strcat猸?/td>45%
闄愬埗鐗坰trncat猸愨瓙猸愨瓙3%

馃З鍔ㄦ€佸唴瀛樼鐞嗙敓瀛樻寚鍗?/h3>

鎼瀖alloc鍜宖ree灏卞儚璋堟亱鐖扁€斺€斾笉澶勭悊濂藉叧绯诲噯鍑轰簨锛佽杩囨渶鎯ㄧ殑妗堜緥鏄細

c澶嶅埗
char *p = malloc(100);
p = realloc(p, 200);  // 濡傛灉鎵╁澶辫触锛屽師鎸囬拡灏变涪浜嗭紒

搴旇鐢ㄥ畨鍏ㄥ啓娉曪細

c澶嶅埗
char *temp = realloc(p, 200);
if(temp != NULL) {
    p = temp;
} else {
    free(p);  // 淇濆簳鎿嶄綔
}

鏌愭父鎴忓叕鍙稿疄涔犵敓鍥犱负杩欎釜閿欒锛屽樊鐐硅鏈嶅姟鍣ㄥ唴瀛樻硠婕?0G...馃槺


馃攳鐏甸瓊鎷烽棶锛氫负鍟ユ垜鐨勬瘮杈冨嚱鏁版€绘娊椋庯紵

寰堝灏忎紮浼寸敤strcmp鏃朵竴鑴告嚨锛?/p>

c澶嶅埗
if(strcmp(passwd, input)) {  // 杩欐牱鍐欐案杩滆繘涓嶆潵锛?/span>
    // 浠ヤ负瀵嗙爜姝g‘...
}

鈥?strong>鈥嬫纭瓟妗堚€?/strong>鈥嬶細strcmp杩斿洖0鎵嶆槸鍖归厤鎴愬姛锛佽浣忚繖涓粫鍙d护锛?/p>

杩斿洖闆讹紝鍏勫紵浜诧紱
闈為浂鏁帮紝鏄矾浜恒€?/p>


馃洝锔忕嫭瀹堕槻鍧戠绫?/h3>

鍘诲勾甯寮熻皟璇曚唬鐮佸彂鐜颁釜缁忓吀闂鈥斺€斾粬鐢╯trtok澶勭悊CSV鏂囦欢锛岀粨鏋滃鐞嗗埌绗笁琛屽氨宕╀簡銆傚悗鏉ュ彂鐜版槸锛?/p>

c澶嶅埗
char *token = strtok(data, ",");
while(token) {
    // 澶勭悊鏁版嵁
    token = strtok(NULL, ",");  // 姝g‘
    // 鏈変汉鍐欐垚 strtok(data, ",") 馃槄
}

寤鸿鎵€鏈夋柊鎵嬶細鈥?strong>鈥嬪鐞嗗畬涓€缁勬暟鎹悗锛岃寰楁妸绗竴涓弬鏁拌涓篘ULL鈥?/strong>鈥嬶紝杩欎釜缁嗚妭鍧戣繃87%鐨勫垵瀛﹁€咃紒


鏈€杩戝湪GitHub鎵掍唬鐮佸彂鐜颁釜鏈夎叮鐜拌薄锛氶偅浜涙爣鏄熻繃鍗冪殑寮€婧愰」鐩紝80%閮戒細鑷畾涔夊畨鍏ㄥ瓧绗︿覆鍑芥暟銆傚氨鍍忚€佸徃鏈哄紑杞﹀繀椤绘敼瑁呯殑鍑犱釜閮ㄤ欢锛屽挶浠啓C璇█涔熷緱鏈夎嚜宸辩殑闃叉挒姊併€傛瘯绔燂紝浠g爜绋充笉绋筹紝鍏ㄧ湅缁嗚妭鎶犲緱鐙犱笉鐙狅紒

搜索