"How to pass String value in between URL in C/C++?"

"How to pass String value in between URL in C/C++?"

本文关键字:in C++ URL between pass String value How to      更新时间:2023-10-16

我有一个变量,我从用户那里获取字符串值。 现在我想在 URL 中使用该字符串值。 就像我的字符串值是"印多尔"。所以它应该像 URL="awe/Indore/ddsd". 请告诉我如何解决?

我认为首先我们需要知道您正在使用哪种"字符串"类型,并可能提供示例,以便我们更好地为您提供帮助。从我从您的评论中看到的内容来看,您可以先拆分字符串,然后将它们合并在一起。

如果是 C 字符串char*则可以使用strtok进行拆分(请参阅另一个主题)。然后与Ehsan Khodarahmi提到的strcat合并,(见另一个主题)

如果它是一个std::string字符串,那么你可以尝试我在 c++ 中的实现来拆分字符串std::string

std::vector<std::string> splitString(std::string inputString, std::string delimiter){
std::string temp = inputString;
std::vector<std::string> output;
size_t pos = 0;
std::string token;
while ((pos = temp.find(delimiter)) != std::string::npos) {
token = temp.substr(0, pos);
output.push_back(token);
temp.erase(0, pos + delimiter.length());
}
output.push_back(temp);
return output;
}

在您的情况下,您可以做

std::vector<std::string> splitted = spitString("Capital/Madhya", "/");

然后splitted = {"Capital", "Madhya"},你可以做

std::string url = splitted[0] + "/Indore/" + splitted[1];

正如人们在评论中所说,你的问题很模糊,所以我的回答可能不会直接帮助你。

更新

如果您使用的是c_str()那么您可能正在使用std::stringc_str()用于将std::string转换为 C 字符串char*(请参阅参考)。因此,在这种情况下,您可以使用我提供的代码来帮助您。根据您告诉我的内容,用户输入已传递给var1.

std::string var1 = "Russia"

而且你已经有了var2

std::string var2 = "Capital/Japan"

然后只需按/拆分var2并合并您想要的内容。

std::vector<std::string> splitted = splitString(var2, "/");
std::string result = splitted[0] + "/" + var1 + "/" + splitted[1];

那么你的结果应该是"首都/俄罗斯/日本"。

更新2

首先,感谢这次包含代码。如果可能的话,你应该一直这样做,这样人们就知道该用什么。 注意:要设置代码格式,请用"将代码括起来

现在回答你的问题。你提供了这个

#include <iostream> 
#include <vector> 
using namespace std;
int main() { 
std::string var1 = "Russia"; 
std::string var2 = "Capital/Japan"; 
std::vector<std::string> splitted = splitString(var2, "/"); 
std::string result = splitted[0] + "/" + var1 + "/" + splitted[1]; 
cout<<result; return 0; 
} 

你的编译器不喜欢它并说

error: 'splitString' was not declared in this scope

此错误消息基本上说splitString函数不存在。这是因为您的代码中没有包含我的代码。在某些时候,您会更习惯地阅读这些错误消息。

所以修复是

#include <iostream> 
#include <vector> 
using namespace std;
std::vector<std::string> splitString(std::string inputString, std::string delimiter){
std::string temp = inputString;
std::vector<std::string> output;
size_t pos = 0;
std::string token;
while ((pos = temp.find(delimiter)) != std::string::npos) {
token = temp.substr(0, pos);
output.push_back(token);
temp.erase(0, pos + delimiter.length());
}
output.push_back(temp);
return output;
}
int main() { 
std::string var1 = "Russia"; 
std::string var2 = "Capital/Japan"; 
std::vector<std::string> splitted = splitString(var2, "/"); 
std::string result = splitted[0] + "/" + var1 + "/" + splitted[1]; 
cout<<result; return 0; 
}