当前位置:编程学习 > C/C++ >>

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

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,