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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C指针练习之,去除空格和标点符号的字符串相关的知识,希望对你有一定的参考价值。

#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指针练习之,去除空格和标点符号的字符串的主要内容,如果未能解决你的问题,请参考以下文章

c语言,怎样输出有空格的字符串?

C练习之 输入一系列单词,以逗号分割,分行输出,删除头尾空格

python进阶练习之——字符串构成

Linux脚本练习之script047-统计英语一句话中字母数不大于6的单词。

VB 中有啥好的办法,用代码去除字符中的:“Tab键”,“回车键”,“空格键”符号。

matlab练习之符合计算和符合微积分 微分偏导化简积分