Hello,大家好,我是爱吃香蕉的猴子,写写Char字符串的处理
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <cstring>
int main()
{
using namespace std;
char animal[20] = "bear";
const char* bird = "wren";
char* ps;
cout << animal << " and ";//display bear
cout << bird << "\n";//display wren
//cout << ps << "\n"; //这样写没有赋值就是野指针
cout << "Enter a kind of animal :";
cin >> animal;// < 20 char
//cin >> ps; //没有初始化空间
ps = animal;//将animal赋给ps并不会赋值字符串,而只是复制地址,这样两个指针指向相同的内存单元和字符串
cout << ps << ";\n";
cout << "Before usring strcpy(); \n";
cout << animal << " at " << (int*)animal << endl;//输出存储地址
cout << ps << " at " << (int*)ps << endl;
ps = new char[strlen(animal) + 1];//get new storage
strcpy(ps, animal);//copy string to new storage
cout << "After using strcpy(); \n";
cout << animal << " at " << (int*)animal << endl;
cout << ps << " at " << (int*)ps << endl;
delete[] ps;
return 0;
}
Code的搬运工V1.0