06、将数字字符后面插入*,顺序不改变——指针,数组,字符串

将数字字符后面插入*,顺序不改变

程序代码如下:

/*
    2017年3月9日11:26:53
    功能:将数字字符后面插入*,顺序不改变
*/
#include"stdio.h"
int main()
{
    char a[100];
    char b[100];
    char c[100];
    char *pa = a;
    char *ppa = a;
    char *pb = b;
    char *ppb = b;                                //该定义的目的是为了将指针移动到串首
    char *pc = c;
    printf("please input a string :\n");
    gets(a);
    while(*pa)                                    //此循环部分是统计有多少个数字个数,同理就是插入几个*
    {
        if((*pa) >= '1' && (*pa) <= '9')          //将*放入到新的内存空间    
        {
            (*pb) = '*';                        
            pb++;    
        }
        pa++;                                     //不论此时循环的字符是何种形式,指针都需要将指针后移
    }
    *pb = '\0';
    while(*ppa)
    {
        if((*ppa) >= '1' && (*ppa) <= '9')
        {
            (*pc) = (*ppa);
            pc++;                                 //pc++;为了找到下次需要存储的位置
            (*pc) = (*ppb);
            ppb++;                                //ppb++;为了找到下次需要插入的数据
            pc++;
            
        }
        else
        {
            (*pc) = (*ppa);
            pc++;
        }
        ppa++;                                    //不论何种形式,进行操作的字符串都要找到下一次要判断的字符,故进行ppa++操作
    
    }
    *pc = '\0';
    puts(c);

    return 0;
}
/*
    总结:
    在VC++6.0中显示的结果:
    ————————————————————————
    please input a string :
    asdfdgfg32536xvgvdg#
    asdfdgfg3*2*5*3*6*xvgvdg#
    ————————————————————————
*/

 

 

posted @ 2017-03-09 11:30  樱桃挚爱丸子  阅读(243)  评论(3编辑  收藏  举报