用户的空终止输入

时间:2015-11-18 16:15:33

标签: c++

只是一个简单的问题。我正在寻找最有效和最清晰的方法来获取任何长度的用户输入并存储它,然后我可以检索它并与另一个输入进行比较。我还需要用户的输入为空终止。我可以写点像

function regexVideoId(url) {
    var regExp = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
    var match = url.match(regExp);
    return match[7];
}

//...

var player;
function onYouTubeIframeAPIReady() {
    player = new YT.Player('youtube-video', {
        height: '390',
        width: '640',
        videoId: videoId: regexVideoId(theUrl),
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
        }
    });
}

1 个答案:

答案 0 :(得分:3)

std::string将自我管理并增长以适应给予该计划的输入。如果你有

std::string input;
std::getline(std::cin, input);

这将从用户那里获得包含可以与输入流可以容纳的空间的输入。现在你有了字符串,如果你需要将它传递给一个需要旧的空终止c样式字符串的函数,那么你将使用c_str()函数。 c_str()会返回const char *,因此您将无法使用它修改字符串数据。

如果你真的需要一个可修改的c风格字符串,那么你可以用

创建一个
char * old_style_string = new char[input.size() + 1];
std::strcpy(old_style_string, input.c_str());