码迷,mamicode.com
首页 > 其他好文 > 详细

C指针练习之,去除空格和标点符号的字符串

时间:2016-12-19 14:27:39      阅读:240      评论:0      收藏:0      [点我收藏+]

标签:null   lib   经典   else   字符串   code   isp   int   moved   

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>

#define BUF_LEN 20
#define BUF_INCR 10

int main(void)
{
    size_t buf_len  = BUF_LEN;
    char *buffer = (char*)malloc(buf_len);
    char *temp =NULL;
    char *pbuffer1 = buffer;
    char *pbuffer2 = NULL;

    printf("Enter:\n");
    
    //经典代码1,运行期动态分配内存
    while((*pbuffer1++=getchar())!=\n)
    {
        if((pbuffer1-buffer)==buf_len)
        {
            buf_len+=BUF_INCR;
            if(!(temp = realloc(buffer,buf_len)))
            {
                printf("bullshit!");
                exit(1);
            }
            pbuffer1 = temp + (pbuffer1 - buffer);
            buffer = temp;
            temp = NULL;
        }
    }

    *pbuffer1 = \0;
    pbuffer1 = pbuffer2 = buffer;
    
    //经典代码段2,设置两个指针,对字符串进行操作,第三个指针进行全输出。
    while((*pbuffer1)!=\0)
    {
        if(ispunct(*pbuffer1)||isspace(*pbuffer1))
        {
            *pbuffer1++;
            continue;
        }
        else
            *pbuffer2++ = *pbuffer1++;
    }

    *pbuffer2 = \0;
    printf("With the spaces and punctuation removed, the string is now:\n%s\n", buffer);
      free(buffer);
    return 0;
}

 

C指针练习之,去除空格和标点符号的字符串

标签:null   lib   经典   else   字符串   code   isp   int   moved   

原文地址:http://www.cnblogs.com/fuxiaoqi/p/6197044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!