注册 登录
编程论坛 C++教室

一个关于指针的问题

宇智波曌 发布于 2011-05-18 17:53, 499 次点击
输入 :****A*BC*DEF**G*******
输出 : ****ABCDEFG
怎么用指针编写
7 回复
#2
yuccn2011-05-18 23:39
不知道你的输入 处理* 和 A-Z ,还有什么字符。如果只是有 * 和A - Z,那就好办,如果有其他的,你就要做额外的过滤了

// 先保存 ****A*BC*DEF**G******* 到 字符数字中,比如:
char szBuffer[256] = {"****A*BC*DEF**G*******"};

char *pTraver = szBuffer;

bool bFindFirstNumber = false;

while (*pTraver != '\0') {
     if (!bFindFirstNumber) {
         if ('A' < *pTraver || *pTraver < 'Z' ) {
             bFindFirstNumber = true;
         }
         else {
             // 输出字符 *pTraver
         }
     }
     else {
          if ('A' < *pTraver || *pTraver < 'Z' ) {
             // 输出字符 *pTraver
          }
     }
     pTraver++;      
}
#3
宇智波曌2011-05-19 12:55
回复 2楼 yuccn
bool bFindFirstNumber = false;
这表示什么意思啊
#4
lomey2011-05-19 14:52
以下是引用宇智波曌在2011-5-19 12:55:48的发言:

bool bFindFirstNumber = false;
这表示什么意思啊
定义一个bool(布尔值)类型变量,bFindFirstNumber(变量名),并赋值(初始化)为false(假).

不知说的对不对.
#5
yuccn2011-05-19 17:23
回复 3楼 宇智波曌
该变量用于标记是否遍历到第一个字母了。
#6
宇智波曌2011-05-19 18:35
回复 5楼 yuccn
程序代码:
#include <stdio.h>
#include <string.h>
void main()
{

 char s[81]="****A*BC*DEF**G******";

 char a[81]="0";

 char *p=s;

 strncpy(a,s,4);
printf("%s\n",s);
printf("===================================\n");

 printf("%s",a);

 while (*p!='\0')

 {
   if(*p!='*')
       printf("%c",*p);

 p++;
}

 printf("\n");
printf("===================================\n");
}
我是这样编写的,虽然可以得到想要的结果,但是我想把printf("%c",*p)输出的结果用 strcat 连接到数组 a 的后面,这个想法怎样实现啊!
#7
yuccn2011-05-19 20:20
#include <stdio.h>
#include <string.h>
void main()
{
    char s[81]="****A*BC*DEF**G******";
    char a[81]="0";
    char *p=s;
    strncpy(a,s,4);
    printf("%s\n",s);
    printf("===================================\n");
    printf("%s",a);

    char *pTraver = a + 4;
    while (*p!='\0')
    {
        if(*p!='*') {
            printf("%c",*p);
            *pTraver = *p;
            pTraver++;

        }

        p++;
    }

    printf("\n");
    printf("a = %s\n",a);


    printf("===================================\n");
}

// 加上不同颜色的那些就行了
#8
宇智波曌2011-05-20 22:13
回复 7楼 yuccn
谢啦!
1