計蒜客 字串判等問題

2022-06-24 11:54:11 字數 1684 閱讀 7119

題目位址

本題的測試資料有點bug,表述不清晰

詳情可以見 提問

題目資訊:

第一種方法:

#include#include

char aa[110

];char b[110

];char c[110

];int

main()

aa[i] =a;

i++;

}aa[++i] = '\0'

; gets(b);

int bl =strlen(b);

int j = 0

;

for(i = 0;i < bl;i++)

c[j] =b[i];

j++;

}int x =strcmp(c,aa);

if(x == 0

) printf(

"yes");

else

printf("no

");return0;

}

分析題目,第一行末尾 一定義有換行符 ' \n ',故可以不斷 getchar() 讀入乙個字元,以該字元是否為 ' \n ' 作為結束標誌。

每次讀入字元,當該字元為 空格時跳過,為大寫字母時,加32變為相應的小寫字母存入緩衝字串。

第二行,乙個gets()函式即可讀入一行資料【因為輸入序列的末尾可能是 ' \n ' ,也可能沒有】,所以一次性讀入完事

再利用for迴圈不斷遍歷,重複第一行資料輸入時的一系列判定操作,將結果存入緩衝字串。最後將兩個緩衝字串利用函式strcmp()比較,完事

# gets() 函式已經廢棄掉了,但暫時找不到 c語言中 如何輸入 末尾不含『 \n 』的含有空格的一行資料

#scanf("%[^\n]" , str)輸入一行資料報括空格,直到遇到換行符 ' \n '

# c++ 中可以 cin.getline(a,100)   將一行序列存入a中,且最大字元數為 100,就可以實現輸入 末尾不含『 \n 』的含有空格的一行資料

第二種方法:

#include#include

char aa[110

];char b[110

];int

main()

aa[i] =a;

i++;

}aa[++i] = '\0'

; i = 0

;while( (a = getchar()) != eof && a != '\n')

b[i] =a;

i++;

}b[++i] = '\0'

;

int x =strcmp(aa,b);

if(x == 0

) printf(

"yes");

else

printf("no

");return0;

}

原理差不多~

計蒜客 字串長度

時間限制1000ms 記憶體限制65536k 在右側我們給出了乙個已經基本完成的程式,讀入了乙個字串,呼叫了乙個叫str len的函式來計算這個字串的長度,並輸出。聰明的你應該已經發現了,這個叫str len的函式並沒有完成,在不修改函式原型的情況下,請完成str len函式,實現我們上述的功能吧。...

計蒜客 字串長度

字串長度 在右側我們給出了乙個已經基本完成的程式,讀入了乙個字串,呼叫了乙個叫str len的函式來計算這個字串的長度,並輸出。聰明的你應該已經發現了,這個叫str len的函式並沒有完成,在不修改函式原型的情況下,請完成str len函式,實現我們上述的功能吧。樣例輸入abcdefg 樣例輸出7 ...

字串處理(計蒜客 解碼)

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數 數字有可能超過一位數 比如a abcd 2等價於aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 乙個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭...