MOOC C語言10 字串

2021-06-22 22:14:09 字數 2000 閱讀 2019

1.字串的-指標和陣列的區別:

char * str = "hello";

char word = "hello";

字串指標預設為const的(即 const char *),所以唯讀不可寫,(其實具體點是,不能通過str修改"hello"的值,原因見

九章指標與const)。str是乙個指標,初始化為指向乙個字串常量。

如果需要修改字串,應該用陣列。

如果要構造乙個字串->陣列,

如果要處理乙個字串->指標。

#include#includevoid a_c(char );

void a_p(char *);

int main()

void a_c(char a);

char *a=;

4.字串處理函式

strlen 返回字串的長度(不包括結尾0)

size_t mystrlen(const char *s)

strcmp 比較兩個字串,相等返回0,s1>s2,返回差值(正數),s1

int mystrcmp(const char * s1,const char * s2)

*/ //改進版

while(s1[idx] == s2[idx] && s1[idx]!='\0')

idx++;

return s1[idx] - s2[idx];

}

strcpy 把第二個字串拷貝到第乙個字串。  複製字串:char *dst = (char *)malloc(strlen(src)+1);    strcpy(dst,src);

char * mystrcpy(char* dst,const char* src)

dst[idx]='\0';

return dst;

}

strcat 把s2連線到s1後面,連線成乙個長字串。

char * mystrcat(char *s1,const char *s2)

strchr 字串中查詢字元,返回此字元開始的指標。

strstr 字串中找字串。

p.s.

'\0'和0等價,即

char s[10]=;

char s[10]=;

是等價的噢。

時間限制

400 ms

記憶體限制

32000 kb

**長度限制

8000 b

判題程式

standard

作者 chen, yue

給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。

輸入格式:測試輸入包含乙個測試用例,在一行內給出總長度不超過80的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母(大小寫有區分)組成的字串,單詞之間用1個空格分開,輸入保證句子末尾沒有多餘的空格。

輸出格式:每個測試用例的輸出佔一行,輸出倒序後的句子。

輸入樣例:

hello world here i come
輸出樣例:
come i here world hello

#include #include int main()

void reverse(char s)

void left(char s,int n){

int len=strlen(s),i;

// printf("%d\n",len);

while(n--){

char a=s[0];

for(i=1;i

10)字串知識

字元 0 ascii值是0 但是0的ascii值是48,所以 strlen遇到 0 就停止 但是 sizeof是測得陣列的長度,包含 0 和0 滑油輸出時 s 也是,遇到 0 就停止輸出了 strcpy 是會把字串的那個 0複製過去的 比如 main 列印出 x y z 1 2 3 4 9 可以看出...

mooc c語言 字串比較 動態陣列

動態分配陣列 include int a int malloc n sizeof int free a 若 a free a 失敗 申請哪個位址還哪個位址因為malloc成功返回 void 所以要型別轉換,沒空間了返回null或0 int p int i p i free p 錯誤free null...

6 8 字串04 比較字串(10 分)

c語言標準函式庫中包括 strcmp 函式,用於字串的比較。作為練習,我們自己編寫乙個功能與之相同的函式。函式原型 比較字串 int strcmp const char str1,const char str2 說明 str1 和 str2 分別為兩個字串的起始位址。按字典排序法,若 str1 串值...