请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
数据范围:。保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种。
//C语言发现需要分配很大的预存空间啊! /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ char* replaceSpace(char* s ) { // write code here char ans[10000]={0} ; int i = 0; while (*s != '\0') { if (*s == ' ') { ans[i++]= '%'; ans[i++] = '2'; ans[i++] = '0'; } else { ans[i++] = *s; } s++; } ans[i] = '\0'; return ans; }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ char* replaceSpace(char* s ) { // write code here int sLen = strlen(s); int num = 0; for(int i = 0; i < sLen; i++) { if(s[i] == ' ') num++; } int rLen = sLen + 2*num; char *Rets = (char*)malloc(rLen*sizeof(char)); memset(Rets, 0, rLen); int j = 0; for(int i = 0; i < sLen; i++) { if(s[i] == ' ') { Rets[j++] = '%'; Rets[j++] = '2'; Rets[j++] = '0'; } else Rets[j++] = s[i]; } return Rets; }
char* replaceSpace(char* s ) { // write code here char* ret_char = (char *)malloc(strlen(s)*3); int index = 0; for(int i = 0; i < strlen(s); i++) { if(s[i]==' ') { ret_char[index++] = '%'; ret_char[index++] = '2'; ret_char[index++] = '0'; } else { ret_char[index++] = s[i]; } } return ret_char; }