uva題目筆記 字串

2021-08-02 18:30:43 字數 1697 閱讀 3419

解碼磁帶

將七個字元位子跟二進位製碼結合起來。通過空格(32),a(65),a(97)來印證。

1.查詢字串,如果基於c++語言的string型別,可以用s.find(args),args為字串、字元、字元指標,如果找到,返回值為args的下標,如果沒找到,則返回npos。如果想以是否找到作為分支判斷的條件,可以寫成if(s.find(args)!=npos).

如果基於c語言,可以用strstr(string1,string2)函式,當然,string1和string2都是c風格字串,目的是在string1中尋找string2子串,如果找到string2,則返回首次出現的位址,如果沒找到,則返回null;

2.用cout輸出指定的精度格式是,cout《同時,本題要注意處理小數點之後的位數。指數函式是中的pow(a,b),意思是a的b次方。

簡潔**:

#include 

#include

#define maxn 105

char s1[maxn],s2[maxn],s3[maxn],s4[maxn],s5[maxn],line[maxn];

void sgets(char *s)

s[i++]=tmp;

}*/for(int i=0;i

'||s[i]=='\n')

}

}

int main()

return 0;

}

思路:既然題目只通過輸入輸出判斷結果是否符合要求,所以不必將幾段字串真正整合,按序輸出即可。

26行處通過getchar(),吸收換行符。

34行通過手動加入'\0',抹掉後三位。

fgets會將結尾的換行符也存到陣列裡,即結尾為'\n''\0'.

#include 

#include

#include

#include

using namespace std;

int cmp(const void *_a,const void *_b)

int main()

else

leap=1;

if(leap==1&&c!=0)

else if(leap==0)

}qsort(s,t+1,sizeof(s[0]),cmp);

printf("%s\n",s[0]);

for(int i=0;i

用getchar()來逐個字元獲取輸入,通過判斷是否是字元,來決定是否要換行、是否要儲存。

設立了兩個標誌:是否要換行,當前位置是否為某行的第乙個元素,來調控儲存的位置。

將所有單詞儲存後排序,並不剔除重複單詞,只是在輸出時比較相鄰兩個單詞是否相同,相同的單詞只輸出第一次。

從左上第乙個元素開始按序(按優先順序順序)逐個分八個方向試探,將八個方向的字串存下來與input比較。

從文字中查詢、替換詞彙。

善於運用strstr(string1,string2);從string1中查詢string2,返回查詢到的位址,如果沒有查詢到,返回null;

strcat(string1,string2),將string2接到string1後面;

strcpy(string1,string2),將string2複製到string1後面。

字串題目

1.數串 1.題目描述 設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。如 n 3時,3個整數13,312,343,連成的最大整數為34331213。如 n 4時,4個整數7,13,4,246連線成的最大整數為7424613。輸入描述 有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數...

字串相關題目

判斷兩個字串str1和str2,是否互為旋轉詞 字串str左邊任意長度的子串挪到右邊 1234 的旋轉詞有1234 2341 3412 4123 時間複雜度為o n 做法 1 判斷兩字串長度是否相等 2 長度相等,生成str1 str1的大字串 大字串包含了str1的所有旋轉詞 3 在大字串中尋找是...

字串常量題目

string s1 a string s2 b string s3 a b 直接拼接成 ab 放入字串常量池,string s4 s1 s2 使用stringbuilder 拼接。然後呼叫 tostring new乙個在堆中新開闢的字串物件 string s5 ab 把 ab 放入常量池,之後賦值給...