將字串中的空格用 代替

期待一片自己的藍天發表於2014-06-05
/*測試資料:Shen zhen is a beautiful city!*/
/*執行結果:Shen%20zhen%20is%20a%20beautiful%20city!*/
#include<stdio.h>
#define SIZE 1000

void wordReplace(char *str)
{
	char *p = str, *e=str,*q,*r;
	char rp[] = "%20";
	r = rp;
	while (*e != 0){
		++e;
	}
	q=e;
	while (*p){
		while (*p == 32){
			while (q != p){
				*(q + 2) = *q;/*之所以是2,是因為%20有三個字元,由於當前字元本身為空格,所以只需要往後面移動兩位即可*/
				--q;
			}
			while (*r != 0){/*將%20字串複製到空白區域*/
				*p = *r;
				++p;
				++r;
			}
			--p;/*為了能用下面的++p*,先將p往前移動一位/
			r = rp;/*初始化*/
			e += 2;/*字串長度增加2*/
			q = e;/*初始化*/
		}
		++p;
	}
	puts(str);/*輸出改動後的字串*/
}

int main()
{
	char str[SIZE];
	printf("Please enter a string :\n");
	gets(str);
	//wordCount(str);
	//wordReplace(str);
	reverseWord(str);
	return 0;
}

相關文章