字符串替换空格
2017-07-17 18:44
218 查看
请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are happy.”,则输出“we%20are%20happy.”。
分析:“ ”占一个字节,“%20”占三个字节,因此在替换的时候数组需要扩容。
1.遍历字符串,求出空格的个数,确定扩容的大小。
2.从后往前,遇到空格,将字符‘0’、‘2’、‘%’赋值给新数组元素。
3.从后往前,遇到不是空格,将原数组元素赋值给新数组元素。
int main()
{
char arr[] = "we are happy." ;
int len1 = 0;
len1 = sizeof(arr)/sizeof(arr[0])-1;
int bank = 0;
int i,j;
int len2=0;
for (i = 0; i < len1; i++)
{
if (arr[i] == ' ')
{
bank++;
}
}
i = len1;
j = len1 + 2 * bank;
while(i != j && i >= 0)
{
if (arr[i] == ' ')
{
arr[j--] = '0';
arr[j--] = '2';
arr[j--] = '%';
i--;
}
else
{
arr[j] = arr[i];
j--;
i--;
}
}
len2 = strlen(arr);
for (i = 0; i < len2; i++)
{
printf("%c", arr[i]);
}
printf("\n");
system("pause:");
return 0;
}
分析:“ ”占一个字节,“%20”占三个字节,因此在替换的时候数组需要扩容。
1.遍历字符串,求出空格的个数,确定扩容的大小。
2.从后往前,遇到空格,将字符‘0’、‘2’、‘%’赋值给新数组元素。
3.从后往前,遇到不是空格,将原数组元素赋值给新数组元素。
int main()
{
char arr[] = "we are happy." ;
int len1 = 0;
len1 = sizeof(arr)/sizeof(arr[0])-1;
int bank = 0;
int i,j;
int len2=0;
for (i = 0; i < len1; i++)
{
if (arr[i] == ' ')
{
bank++;
}
}
i = len1;
j = len1 + 2 * bank;
while(i != j && i >= 0)
{
if (arr[i] == ' ')
{
arr[j--] = '0';
arr[j--] = '2';
arr[j--] = '%';
i--;
}
else
{
arr[j] = arr[i];
j--;
i--;
}
}
len2 = strlen(arr);
for (i = 0; i < len2; i++)
{
printf("%c", arr[i]);
}
printf("\n");
system("pause:");
return 0;
}
相关文章推荐
- 替换字符串中的空格
- 实例1:字符串——替换空格
- 【C语言】字符串替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”。
- 将一个字符串中的空格全部替换为“%20”
- 【面试题】剑指offer04--替换字符串中的空格
- js替换掉字符串中的空格\回车\换行
- javascript 基础 -- 替换字符串文本中的空格
- 替换空格(将字符串中的空格替换为20%)
- 编写一个方法,将字符串中的空格全部替换为“%20”
- 字符串替换空格:请实现一个函数,把字符数组中的每个空格替换成“%20”。
- 请实现一个函数,将一个字符串中的空格替换成“ ”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We Are Happy。
- 替换字符串里的空格与基本字符串压缩
- 剑指offer 面试题4—替换字符串中空格
- 剑指offer-面试4:替换空格(字符串操作)
- 【面试题004】c/c++字符串,替换空格
- 《剑指offer》--005--替换字符串中的空格
- 字符串空格替换
- 替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”
- 将一个字符串中的空格替换成“ ”
- 把不是空格的字符串进行替换