试图找到名字的中间首字母

Trying to find the middle initial of a name

本文关键字:中间      更新时间:2023-10-16
#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;
    }

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

我不完全确定您的预期输入是什么,但您可能希望研究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;
}

可能效果最好。 (单击此处进行测试。

你有getline函数来进入一条带有空格的行。您得到的输出错误,因为您的程序没有正确接受带有空格的输入。