我在 C 中使用 strtok() 函数。它返回指向分割字符串的位置的指针。
int main()
{
char s[100]="A B C D";
char *p;
p=strtok(s," ");
while(p!=NULL){
p=strtok(NULL,".");
//Do something
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何找出发生分割的索引(最好是在恒定时间内)?
如果我从方法返回CString会发生什么?它会调用CString的析构函数吗?
CString f(){
CString s = g();
return s;
}
const char* g(){ return new char[5]; }
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
为什么这段代码输错了?输出是5和9,不应该是5和4.这是代码
int main
{
char a[10] ={'a','b','c','d','e'};
char c[] = {'q','t','y','t'};
cout<<strlen(c)<<endl<<strlen(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 是否有任何方法可以将引用的字符串分配给指针,如下所示,而不将其转换为const char*?
char** p;
*p=new char[100];
*p="quoted_string\n";
Run Code Online (Sandbox Code Playgroud)
上面的问题p是现在是一个const字符串,我不能delete阻止它:
delete p[n]; //gives an error--- block_is_valid...
Run Code Online (Sandbox Code Playgroud)
我知道字符串文字,L"string"但我找不到任何东西来解决我的问题.
澄清:我明确表示我正在寻找一种在所提供的例子中处于简洁程度的方法.我知道我可以遍历字符串并复制它,但这不是我想要的.
对于那些对放置感到困惑的人delete,我用它来做这样的事情:
while(*p!=char_01) //this is not an example to be taken literally
{delete p; p++;}
Run Code Online (Sandbox Code Playgroud)