替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are best ”,则输出we%20are%20 best
此题的实际意义是在网络编程中,如果URL中含有特殊的字符如空格、‘#’等可能导致服务器无法获取正常的参数,我们需要将特殊字符转换成服务器可以识别的字符。准换的规则是“%”加上ASCLL的两位十六制表示,如空格的ASCLL值是32则十六进制为0x20
void replaceBlank(char *src,int length) { int oriLength = 0; int countBlank = 0; int i = 0; if (src == NULL && length <= 0) { return; } // 统计总长度和空格数 while (src[i] != '\0') { oriLength++; if(src[i] == ' ') { countBlank++; } i++; } int newLength = oriLength + 2*countBlank; // 新长度是否超限制 if (newLength > length) { return; } // 拷贝 int indexOri = oriLength; int indexNew = newLength; while (indexOri >= 0 && indexNew > indexOri) { if (src[indexOri] == ' ') { src[indexNew--] = '0'; src[indexNew--] = '2'; src[indexNew--] = '%'; } else { src[indexNew--] = src[indexOri]; } indexOri--; } printf("newstr= %s\n",src); }