gpt4 book ai didi

c++ - C++中如何检查字符串的结尾?

转载 作者:行者123 更新时间:2023-11-28 00:34:13 25 4
gpt4 key购买 nike

我有一个我正在尝试实现的基本程序,它请求一个 .pdf 文件的 URL,然后下载它并通过 Xming 显示它。首先,我想检查以确保用户实际输入的 URL 前面带有“http://”,末尾带有“pdf”或“PDF”。我想这可能是来自 Python 的人的典型问题,但我如何检查用户输入的字符串的结尾。使用下面的方法(我用我的 Python-oriented-brain )我得到一个

Range error: -3

那么实际的 C++ 程序员如何完成这项任务呢?请谢谢。

if (file[0]=='h' && file[1]=='t' && file[2]=='t' && file[3]=='p' && file[4]==':'
&& file[5]=='/' && file[6]=='/' && (file[-3]=='p' || file[-3]=='P')
&& (file[-2]=='d' || file[-2]=='D') && (file[-1]=='f' || file[-1]=='F'))

最佳答案

在 C++ 中,您无法访问负标志。您将不得不手动计算最后一个元素的位置:

int s = file.size();
(file[s-3]=='p' || file[s-3]=='P')
&& (file[s-2]=='d' || file[s-2]=='D')
&& (file[s-1]=='f' || file[s-1]=='F')

我假设该文件是一个 C++ 字符串,如果不是,您必须使用其他方法来获取长度

您还可以通过使用内置字符串函数来简化代码:

int s = file.size();
if (s > 10 && file.find("http://") == 0 && file.substr(s-3, 3) == "PDF") //...

或者像另一个评论建议的那样使用正则表达式(可能是最好的方法)

关于c++ - C++中如何检查字符串的结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21597046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com