字串操作
標頭檔案:。printf和scanf在中,cin和cout在標頭檔案中且位於std命名空間內。
下面假設待處理的字串為str和str2,即:char str[max], str2[max];
牢記,字串的最後乙個字元一定是'\0'。如果字串內沒有'\0',進行以下操作(輸入除外)時可能會造成意外事故。
輸出字串str:
ÿ cout<ÿ printf("%s",str);
輸入字串str:
ÿ scanf("%s", str);
ÿ cin>>str;
以上兩種方法在輸入時會忽略空格、回車、tab等字元,並且在乙個或多個非空格字元後面輸入空格時,會終止輸入。
ÿ fgets(str, max, fin);
每呼叫一次,就會讀取一行的內容(即不斷讀取,直到遇到回車停止)。
求字串str的長度:strlen(str) // 這個長度不包括末尾的'\0'。
把字串str2連線到字串str的末尾:strcat(str, str2)
ÿ str的空間必須足夠大,能夠容納連線之後的結果。
ÿ 連線的結果直接儲存到str裡。函式返回值為&str[0]。
ÿ strncat(str, str2, n)是把str2的前n個字元連線到str的末尾。
把字串str2複製到字串str中:strcpy(str, str2)
比較str和str2的大小:strcmp(str, str2)
如果str>str2,返回1;如果str==str2,返回0;如果str<str2,返回-1。
在str中尋找乙個字元c:strchr(str, c)
返回值是乙個指標,表示c在str中的位置。用strchr的返回值減str,就是具體的索引位置。
在str中尋找str2:strstr(str, str2)
ÿ 返回值是乙個指標,表示str2在str中的位置。用strstr的返回值減str,就是具體的索引位置。
ÿ 此問題可以用kmp演算法解決。kmp演算法很複雜,在noip範圍內用途不大。
從str中獲取資料:sscanf(str, "%d", &i);
格式化字串:sprintf(str, "%d", i);功能:把格式化的資料寫入某個字串中;返回值:字串長度
數字轉字串:使用sprintf()函式:
sprintf(s, "%d", 123); //產生"123",這樣字串s就是"123",返回結果為:3(這是字串s的長度)
字串轉數字:使用sscanf()函式
char str="1234321"; int a; sscanf(str,"%d",&a);
字串操作 靠字串分割字串
字串分解函式。注意strtok比較複雜。要妥善運用!也可以不用strtok函式,但要實現字串靠字串分割比較困難!注意str指向的空間必須是可讀可寫的 如陣列或動態分配的空間 不能為字串常量的指標,因為strtok改變了其中的內容。include include 功能 將str中的字串按照elemon...
字串操作
字串操作 要了解字串操作首先要了解什麼是字串。前面已經提過,字串是乙個由零個或者多個字元組成的有限序列,既然是有限的那麼也就意味著字串存在乙個起始位置和乙個結束位置。我們以指定起始位置的方式來通知程式從該位置起向後的一段記憶體空間的內容應該解釋為字串。那麼這個字串在什麼地方結束呢?規定當遇到字元 0...
字串操作
include using namespace std int strlength char str char strcopy char str1,char str2 char strlink char str1,char str2 int main char strcopy char str1,c...