#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没有分配空间是因为它要求你在函数执行前就分配好,否则调用会出问题的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)