關於幾個字串操作的函式

2021-06-28 04:23:35 字數 1039 閱讀 4328

好久沒有用c語言寫**,偶然看到乙個這樣乙個上機題!

輸入:this is a book

輸出:this is a book

此題號稱華為上機題(華為你弱爆了!)!

我藉著這個來複習一下幾個字串函式!

首先,毫無疑問,這種題目遍歷一遍字串是最快的!

void strformat(char* des)

如果,題目要求不能改變原字串的我們可以使用strcpy函式拷貝乙份函式

char* buf=(char*)calloc(strlen(str),sizeof(char));

strcpy(buf,str);

觀察題目我們可以知道,英文本串是以空格為分隔符的.

當我們在控制台宿舍字串,一旦遇到空格scanf是會自動返回的!

因此類似於c++中stringstream,我們可以使用字串格式化函式sscanf對字串進行格式化,取出每乙個單詞!

void strformat2(char* des,char* src)

des[--len]='\0';

free(word);

}

上面的函式同樣能達到目的!但是,這裡有乙個bug:當src是以空格結尾是,尾巴的空格會被捨去!!

string.h中還有乙個函式能夠實現我們的要求!strtok!!

char* strtok(char* src,char* delim);

這個函式能夠進行字串分析,將src串中所有的delim替換為'\0',這樣src就被分成了若干子串!

void strformat3(char* des,char* src)

des[--len]='\0';

}

上面的三種方法毫無疑問,方法一貌似是最適合解決問題的!

sscanf,strtok應該在更有用的場合使用!!

幾個字串操作的彙編函式

pragma once namespace wch 求字串長度,等於位元組數 inline int strlen const char src 拷貝字串,注意源串與目標串不可重疊 declspec naked int stdcall strcpy const char src,char dst 鏈結...

Oracle幾個字串函式

平常我們用oracle主要有兩種字串型別 1 char始終為固定的長度,如果設定了長度小於char列的值,則oracle會自動用空格填充的。當比較char時,oracle用空格將其填充為等長,再進行比較 2 varchar2資料型別為可變長度,雖然與varchar資料型別是同義的,但在今後的orac...

strcpy memcpy幾個字串函式的完美版

strcpy函式 char strcpy char strdest,const char strsrc memcpy函式 void memcpy void pvto,void pvform,size t size assert pvto null pvfrom null assert pbto pv...