學會這道題你基本就會字串的輸出和字串函式的使用了。
洛谷題p5734
題目要求:
你需要開發一款文字處理軟體。最開始時輸入乙個字串(不超過 100 個字元)作為初始文件。可以認為文件開頭是第 0 個字元。需要支援以下操作:
1 str:後接插入,在文件後面插入字串 str,並輸出文件的字串。
2 a b:擷取文件部分,只保留文件中從第 a 個字元起 b 個字元,並輸出文件的字串。
3 a str:插入片段,在文件中第 a 個字元前面插入字串 str,並輸出文件的字串。
4.查詢子串,查詢字串 str 在文件中最先的位置並輸出;如果找不到輸出 -1。
為了簡化問題,規定初始的文件和每次操作中的 str 都不含有空格或換行。
輸入:3
ilove
1 luogu
2 5 5
3 3 gugugu
輸出:iloveluogu
luogu
luogugugugu
#define crt secure no warnings
#include
#include
intmain()
else
if(x ==2)
else
if(x ==3)
else
else}}
return0;
}
注意:在使用下列函式之前必須有標頭檔案
#include
要求一:連線兩個字串需要用
strcat(string catenate)將兩個字串連線
例如:
char str1[
100]=;
char str2=
;strcat
(str1,str2)
;//注意str1一定要比str2大
要求二:擷取文件部分
strcpy(string copy)複製字元。或strncpy
輸入要分的字元即從a開始,b個位元組後結束。
即s[a + b] = 『\0』;
後從s[a]開始複製給in,
in後又複製給s對輸出結果無影響,只是為方便下乙個要求。
要求三:插入片段
還是呼叫函式strcat
注意s[a] = 『\0』;這個很重要,strcat函式插入會在/0後插入
如果不寫這行**則會出現下面的情況
iamstudent
32 you
iamstudentyoumstudent
要求四:查詢字元
strstr函式
char *strstr(const char *haystack, const char *needle)
左邊引數為字串,右邊引數為要查詢的值。
其他字串函式
1.int memcmp(const void *str1, const void *str2, size_t n))
比較str1和str2前n位元組的字元
同型別的還有
int strcmp(const char *str1, const char *str2)
比較str1和str2。
該函式比較的是大小即為(ab, 返回1;
memcmp(a, b):-1 // a2.strlen函式,計算長度
字串和字串函式
字元輸入輸出 getchar putchar ch getchar putchar ch 字串函式 字串輸入 建立儲存空間 接受字串輸入首先需要建立乙個空間來存放輸入的字串。char name scanf s name 上述的用法可能會導致程式異常終止。使用字串陣列 可以避免上述問題 char na...
字串和字串函式
1.字串字面量 字串常量 用雙引號括起來的內容稱為字串字面量,也叫字串常量。字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期內存在,計時函式被呼叫多次。用雙引號括起來的內容被視為指向該字串儲存位置的指標。hello 中的 hello 類似於乙個陣列名...
常用的字串輸出函式
字串擷取函式 substr 和mb substr 一般情況下都選擇用前者,只有在處理中文字串時才會用到後者 str abcdefg str1 substr str,0,7 str2 substr 中國人 0,7 echo str1.此處輸出不全,因為乙個漢字占用多個位元組 echo str2.用字串...