C++ 指针取字符串 已知: char *p = "This apple is red."; string s; 要求: 用指针将“apple”取出赋给s。
不能用数组,因为用数组我也会。
追问:这方法不好,若定义q指向“apple”,那直接从q指针取出“apple”不更方便吗。这是在干嘛,能取出“apple”吗取出过程未使用指针没有指针参加运算,只是将p1作指针参数传入string函数中,没有相关的指针运算过程。考虑到可能会用到strcpy,memcpy之类的辅助函数,所以不做限制。但取出过程需有指针运算,而不是只出现那么一两次。取出过程未使用指针
答案:#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
char *p = "This apple is red.";
char *q = "apple";
strstr(p,q);
string s(q);
cout << "string = " << s <<endl;
return 0;
}
希望对你有帮助,求回复!
其他:C中不存在string 类型 char *p = "This apple is red.";
char *p_t1 = new char[10];
char *p_t2 = new char[10];
char *p_t3 = new char[10];
char *p_t4 = new char[10];
sscanf(p, "%s %s %s %s", p_t1, p_t2,p_t3,p_t4);
string s = p_t2;
printf("%s\n", s.c_str()); 先用strstr函数在p中找到‘a’,它的返回值就是一个新的指针,这个指针指向‘a’,假设这个指针的名字叫NewP,然后从NewP顺序拷贝五个字节到s,不要忘了最后要给s的最后一个字节添加“/0”,这个做完你就从p中把apple拷贝到s了。 #include <iostream>
#include <string>
using namespace std;
int main(void)
{
char *p = "This apple is red.";
string s=p;
string s1;
int a,b;
a=s.find('a',0);
s1=s.substr(a,5);//5表示apple的长度
cout<<s1<<endl;
}
上一个:C语言数组的基础例题 二分法 为什么输入2,,6,3,8,0,19不行 而别的行
下一个:关于C#中的static