将数字字符后面插入*,顺序不改变
程序代码如下:
1 /* 2 2017年3月9日11:26:53 3 功能:将数字字符后面插入*,顺序不改变 4 */ 5 #include"stdio.h" 6 int main() 7 { 8 char a[100]; 9 char b[100]; 10 char c[100]; 11 char *pa = a; 12 char *ppa = a; 13 char *pb = b; 14 char *ppb = b; //该定义的目的是为了将指针移动到串首 15 char *pc = c; 16 printf("please input a string :\n"); 17 gets(a); 18 while(*pa) //此循环部分是统计有多少个数字个数,同理就是插入几个* 19 { 20 if((*pa) >= ‘1‘ && (*pa) <= ‘9‘) //将*放入到新的内存空间 21 { 22 (*pb) = ‘*‘; 23 pb++; 24 } 25 pa++; //不论此时循环的字符是何种形式,指针都需要将指针后移 26 } 27 *pb = ‘\0‘; 28 while(*ppa) 29 { 30 if((*ppa) >= ‘1‘ && (*ppa) <= ‘9‘) 31 { 32 (*pc) = (*ppa); 33 pc++; //pc++;为了找到下次需要存储的位置 34 (*pc) = (*ppb); 35 ppb++; //ppb++;为了找到下次需要插入的数据 36 pc++; 37 38 } 39 else 40 { 41 (*pc) = (*ppa); 42 pc++; 43 } 44 ppa++; //不论何种形式,进行操作的字符串都要找到下一次要判断的字符,故进行ppa++操作 45 46 } 47 *pc = ‘\0‘; 48 puts(c); 49 50 return 0; 51 } 52 /* 53 总结: 54 在VC++6.0中显示的结果: 55 ———————————————————————— 56 please input a string : 57 asdfdgfg32536xvgvdg# 58 asdfdgfg3*2*5*3*6*xvgvdg# 59 ———————————————————————— 60 */
时间: 2024-10-16 04:42:56