我正在尝试从 char 指针中删除字符,并希望将它们存储回一个新的 char 指针变量中,比如说“temp”。所以我会有这样的事情:
char *test = "1@2#3$4%5^6&7*8!9@1#0";
char *temp = "";
然后删除 "@,#,$,%,^,*,!,@,#" 并将 "12345678910" 的新值放入 *temp。这将使 temp 等于“12345678910”。
这可能吗?
我一直在用字符串做这个,但我真的需要用 char 指针来做这个。这是我使用字符串完成此操作的方法:
std::string str("1@2#3$4%5^6&7*8!9@1#0");
std::string temp("");
char chars[] = "@#$%^&*!";
for (unsigned int i = 0; i < strlen(chars); ++i)
{
str.erase (std::remove(str.begin(), str.end(), chars[i]), str.end());
}
temp = str;
所以你在这里看到我正在做这一切将字符串,但我似乎无法逃脱将像 test 这样的 char * 变量分配给字符串,因为它是非法转换。但是,为什么我可以像这样将我的 char * 变量设置为等于字符串?
char *test = "123456789";
然而这是违法的吗?
std::string str("1@2#3$4%5^6&7*8!9@1#0");
char chars[] = "@";
for (unsigned int i = 0; i < strlen(chars); ++i)
{
str.erase (std::remove(str.begin(), str.end(), chars[i]), str.end());
}
char *test = str; //Illegal point
感谢您的时间。