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

一个这样的程序弄得我焦头烂额

luguolian 发布于 2013-08-17 18:34, 668 次点击
编程:
有长度不大于40的字符串,已知其中包含两个字符“A”,求处于这两个字符中间的字符个数,并且依次把这些字符打印出来。

8 回复
#2
yuccn2013-08-17 21:54
char *begin = strchr(buff,'A');
int nCount = 0;
begin++;

while (*begin != 'A') {
    printf("%c", *begin);
    begin++;
    nCount++;
}

    printf("\nCount = %d", nCount);
#3
zhujiangtaoc2013-08-18 10:09
#include<iostream>
#include<string>
using namespace std;
int main()
{
    char *str="jiangAtaozhuwuqiongA123";
    int cnt=0,i=0;
    char s1[40];
    for(;*str!='A';str++);
    str++;
   
    while(*str!='A')
    {
        cnt++;
        s1[i]=*str;
        str++;
        i++;
    }
    s1[i]='\0';
    cout<<s1<<endl;
    cout<<"cnt= "<<cnt<<endl;
}
#4
zhujiangtaoc2013-08-18 10:14
只有本站会员才能查看附件,请 登录
#5
TonyDeng2013-08-18 10:34
上面的程序对吗?
#6
TonyDeng2013-08-18 12:43
如果数据提供者确保“有且只有”两个大写的字母'A',那么上面的代码是可行,只是这种假定没什么实用性。
#7
yuccn2013-08-18 12:55
回复 6楼 TonyDeng
这是提供思路给楼主而已,大型软件肯定不能这样的拉
容错之类的,还得楼主自己去完善
#8
TonyDeng2013-08-18 13:01
思路应是从前面搜一个'A',再从后面搜一个'A',不应是单向搜。
#9
yuccn2013-08-18 13:15
回复 8楼 TonyDeng
够细心

这个楼主没有明确是前面两个a之间的或者是说串中的前后两a之间
1