0
#include<iostream>

using namespace std;

int main(){
    char sampleName[30];
    char middle;
    int i;

    cin>>sampleName;

    for(i=0;i<30;i++){
        if(sampleName[i]=='.'){
            middle=sampleName[i-1];
            break;
        }          
    }

    cout<<middle;

    return 0;
    }

当输入中有空格时,它似乎不起作用。请。谁能帮我吗?

4

2 回答 2

1

我不完全确定您的预期输入是什么,但您可能希望查看std::getline(结合std::string)以避免std::cin >> .... (有关相关讨论,请参见此处。)

所以,某种形式的东西

#include <iostream>
#include <string>

int main()
{
    std::string sampleName;
    char middle;

    std::getline(std::cin, sampleName);

    for (int i = 0; i < sampleName.size(); i++)
    {
        if (sampleName[i] == '.')
        {
            middle = sampleName[i-1];
            break;
        }          
    }

    std::cout << middle << std::endl;

    return 0;
}

可能效果最好。(点击这里进行测试。)

于 2013-07-02T01:27:53.847 回答
0

你有getline函数来与空格对齐。你得到错误的输出,因为你的程序没有正确地输入空格。

于 2013-07-02T01:29:48.050 回答