c++字符串(string函数)

c++字符串(string函数),第1张

#include<iostreamh>

#include<stringh>

#include<stdioh>bool docheck(const char stunum);

int main()

{

char data[15]={'\0'};

cout<<"zx09081T班级判断\n";

cout<<"请输入学号:"<<endl;

for(int i=0;i<11;i++)

{

data[i]=getchar();

}

cout<<endl;

if(docheck(data))

cout<<"是zx09081T班学号"<<endl;

else

cout<<"不是zx09081T班学号"<<endl; return 0;

}bool docheck(const char stunum)

{

char data[12]={'\0'};

strncpy(data,stunum,8);

if(strcmp(data,"zx09081T")==0)

return true;

else

return false;

}

value_type;

template<class Char_t>

struct std::char_traits { };

template<> struct std::char_traits<char> {

typedef char char_type;

//

}; 也有wchar_t的,但是std::char_traits<wchar_t>是typedef wchar_t char_type;

template<class Ch,class Tr = std::char_traits<Ch>, class Alloc=std::allocator<char> >

class std::basic_string {

public:

typedef size_t size_type;

typedef Tr traits_type;

typedef typename Tr::char_type value_type;

//

里面的函数,如:

size_type copy(value_type p, size_type n, size_type pos=0) const;

};

typedef std::basic_string<char> string;

所以string和wstring都只是typedef这个模板的,basic_string不需要知道实际的字符的实际类型,只要对字符类型做个typedef重命名为value_type,一律以value_type来 *** 作就可以了。

1

完全可以。建议改,改后代码清晰得多

2

不行。指针p没有分配空间,不能对它拷贝字符串。需要先

p

=

new

char[100];

用完后

delete

[]p;

3

函数里dest没有分配空间是因为它要求你在函数执行前就分配好,否则调用会出问题的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12163273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存