将字符串的空格变成20%-c语言
一,思路详解

字符串若干个连续地址的字符组成,是一个常量带有只读属性,可以访问但是不能改写,但是字符数组可以改写,字符数组连起来就是一个字符串。malloc只能用于指针,数组在定义的时候就已经分配好空间,无法动态分配空间。指针与malloc的配合能达到和数组一样的效果,缺点就是无法像数组一样随心所欲遍历各个元素.
二,代码实现
#include<stdio.h>
#include<string.h>
#include<malloc.h>
char* replaceSpace(char* s)
{
int len=strlen(s); // 求到字符串的长度
char *string=(char *)malloc(sizeof(char)*len*3+1); //扩容新的字符串,为以前的三倍
char *p1=s; //s可以访问,但不可以改写,所以我们用p1来替代s
char *p2=string; //扩容后的数组赋值给p2
while(*p1!='\0')
{
if(*p1!=' ') //进行判断
{
*p2=*p1; // *p1可以访问字符串常量的字符
p2++;
p1++; // 访问下一个字符
}
else
{
p1++;
*p2='%';p2++;
*p2='2';p2++;
*p2='0';p2++;
}
}
*p2='\0';
return string;
}
int main()
{
char *s="we are family";
char* str=replaceSpace(s);
printf("%s",str);
return 0;
}
本文来自博客园,作者:ETTA-7,转载请注明原文链接:https://www.cnblogs.com/etta-7/

浙公网安备 33010602011771号