【剑指Offer】替换空格

    xiaoxiao2026-09-29  10

    题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 void replaceSpace(char *str,int length) { char *ch=(char *)malloc(sizeof(char)*length); strcpy(ch,str); int index=0; int i=0; while(ch[i]){ if(ch[i]==' '){ str[index++]='%'; str[index++]='2'; str[index++]='0'; }else{ str[index++]=ch[i]; } i++; } str[index]='\0'; } #include<cstring> #include<cstdlib> #include<iostream> #include<cassert> //方法2 void replaceSpace(char* str){ if (str == NULL) return; int spaceNum = 0; char* pstr = str; while (*pstr != '\0'){ if (*pstr == ' ') spaceNum++; pstr++; } int len = strlen(str); for (int i = len; i >= 0; i--){ if (str[i] == ' '){ str[i + 2 * spaceNum] = '0'; str[i + 2 * spaceNum-1] = '2'; str[i + 2 * spaceNum-2] = '%'; spaceNum--; } else{ str[i + 2 * spaceNum] = str[i]; } } } int main(){ char str[] = "how are you"; replaceSpace(str); std::cout << str << std::endl; std::cin.get(); }
    转载请注明原文地址: https://ju.6miu.com/read-1312432.html
    最新回复(0)