将字符串的空格变成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;
}

 

posted @ 2022-01-06 10:44  小杜加油  阅读(115)  评论(0)    收藏  举报