gpt4 book ai didi

c++ - 新手 - 将 char* 转换为字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:44:35 27 4
gpt4 key购买 nike

我有如下功能:

int main(int argc, char *argv[])
{

}

我想在argv[1] 中找到一个字符(点字符)。我尝试将 char* 转换为如下所示的字符串:

std::string para2="";
if(argc==2 && argv[1]!=NULL)
{
para2 = string(argv[1]);
}

但是 para2 使用打印命令显示奇怪的字符并且查找功能无法正常工作。请指导我如何在 char* 类型中查找字符。

谢谢

最佳答案

一些注释如下:

注释 #1:

std::string para2="";

当你构造一个字符串时,默认构造函数初始化一个空字符串,所以你不需要=""部分:std::string para2;是就好了。

注释 #2:

if(argc==2 && argv[1]!=NULL)
{
para2 = string(argv[1]);
}

当您从 char* 分配给 std::string 时,您可以只使用 operator= 重载,而无需显式 字符串部分:

para2 = argv[1];

根据对您问题的一些评论中的一些请求,您可以使用 std::string::rfind 来检查一些扩展,例如:

#include <iostream>
#include <string>

int main(int argc, char * argv[])
{
std::string param2;

if (argc == 2)
{
param2 = argv[1];
}

std::cout << param2 << std::endl;

if (param2.rfind(".jpg") != std::string::npos)
{
std::cout << "JPEG file." << std::endl;
}
}

关于c++ - 新手 - 将 char* 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20191908/

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