將一個字符串中的空格替換成“%20”
C語言:
1 /* 2 ----------------------------------- 3 通過函數調用,傳地址來操作字符串 4 1.先計算出替換后的字符串的長度 5 2.從字符串最后一個字符串開始往右移 6 ----------------------------------- 7 */ 8 9 10 # include <stdio.h> 11 # include <string.h> 12 13 void replace(char * arr) 14 { 15 int i, j, len, count; 16 count = 0; 17 len = strlen(arr); 18 19 for (i=0; i<len; i++) 20 { 21 if (arr[i] == ' ') 22 { 23 count++; 24 } 25 } 26 27 i = len; 28 j = 2 * count + len; //每一個空格用三個字符替換,所以相當於每個空格多2個字符; 29 printf("處理前的字符串為:%s\n", arr); 30 31 while (i!=j && i>=0) 32 { 33 if (arr[i] == ' ') 34 { 35 arr[j--] = '0'; 36 arr[j--] = '2'; 37 arr[j--] = '%'; 38 i--; 39 } 40 else 41 { 42 arr[j] = arr[i]; //第一次替換的是字符串的結束符'\0' 43 j--; 44 i--; 45 } 46 } 47 printf("處理后的字符串為:%s\n", arr); 48 } 49 50 int main(void) 51 { 52 char str[] = "We Are Happy."; 53 replace(str); 54 55 return 0; 56 } 57 58 /* 59 在Vc++6.0中的輸出結果為: 60 ----------------------------------- 61 處理前的字符串為:We Are Happy. 62 處理后的字符串為:We%20Are%20Happy. 63 Press any key to continue 64 ----------------------------------- 65 */
另外,在C中,計算數組中元素個數用sizeof
int a[] = {1, 3, 5, 6, 9};
int m = sizeof(a)/sizeof(int);
Python:
如果需要修改字符串,則先轉換為列表,最后再通過join轉為字符串
方法一:
s = 'hello my baby' def rep(s): li = [] for i in s: li.append(i) for i in range(len(li)): if li[i] == ' ': li[i] = '%20' return ''.join(li) s = rep(s) print(s)
方法二:
s = 'hello my baby' def rep(s): li = [] for i in s: li.append(i) for i in li: if i==' ': li[li.index(i)]='%20' return ''.join(li) s = rep(s) print(s)