/*
ca31a_demo_31_C++_C_txwtech风格字符串c_strcpy_strcmp_strcat
C风格字符串的使用
const char *cp="some value"; 字符常量数组
C风格字符串的标准函数
永远不要忘记字符串结束符null--\0
使用strn函数处理C风格字符串
尽可能使用标准库类型string
cout << "C: " << strlen(cp11) << endl;//strlen C语言的函数
cout << "C++: " << s11.size() << endl;
//strcmp c风格字符串比较
const char *cp11 = "A string exmaple";//
const char *cp22 = "A different string";//
int i = strcmp(cp1,cp2);
strcpy//拷贝
strcat//连接
*/
/*
ca31a_demo_31_C++_C_txwtech风格字符串c_strcpy_strcmp_strcat
C风格字符串的使用
const char *cp="some value"; 字符常量数组
C风格字符串的标准函数
永远不要忘记字符串结束符null--\0
使用strn函数处理C风格字符串
尽可能使用标准库类型string
cout << "C: " << strlen(cp11) << endl;//strlen C语言的函数
cout << "C++: " << s11.size() << endl;
//strcmp c风格字符串比较
const char *cp11 = "A string exmaple";//
const char *cp22 = "A different string";//
int i = strcmp(cp1,cp2);
strcpy//拷贝
strcat//连接
*/
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <string.h> //c语言写法
//#include <cstring>//c++中使用c语言的函数
using namespace std;
int main()
{
string s("hello");//c++风格
char s2[] = "hello";//c风格字符串,字符数组
const char *cp = "hello";//操作c风格字符串,不可修改
while (*cp)//解引用
{
cout << *cp << endl;
++cp;//默认指向第一个字符
}
char ca1[] = {'c','+','+'};//不是c风格字符串,没有\0
char ca2[] = { 'c','+','+','\0' };//是c风格字符串
char ca3[] = "c++";//是c风格字符串,自动会添加\0
char *cp1 = ca1;//字符数组,不是c风格字符串
char *cp2 = ca2;//指向c风格字符串
printf("hello c语言!\n");//c风格
cout << "hello c++!" << endl;//c++风格
//C风格字符串的标准函数
const char *cp11 = "A string exmaple";//16+1
const char *cp22 = "A different string";//18+1
string s11("A string exmaple");
string s22("A different string");
cout << strlen(cp11) << endl; //strlen计算时,不考虑\0
cout << "C: " << strlen(cp11) << endl;//strlen C语言的函数
cout << "C++: " << s11.size() << endl;
char ca[] = {'C','+','+'};//没有/0,统计就是错误的,strlen需要找到\0才结束
cout << "c: " << strlen(ca) << endl;//没有/0,统计就是错误的
s11 = "Bill";
s22 = "Mary";
cp11 = "Bill";//c风格
cp22 = "Mary";//c风格
//s11 = s22;//
//cp11 = cp22;;//错误
//应该:
char largeStr[10] = {0};
char largeStr2[10]= {0};
strcpy(largeStr,cp11);
strcat(largeStr, " ");
strcat(largeStr,cp22);
cout << "largeStr: "<<largeStr << endl;
strncpy(largeStr2,cp11,4); //4表示拷贝cp1里面实际的位数
strncat(largeStr2, " ", 1);//添加一个空格
strncat(largeStr2,cp22,4);//4表示连接cp2里面实际的位数
cout << "largeStr2: " << largeStr2 << endl;
//strcmp c风格字符串比较
int i = strcmp(cp1,cp2);
if (i > 0)
{
cout << "cp1大" << endl;
}
else if (i < 0)
{
cout << "cp2大" << endl;
}
else if (i == 0)
{
cout << "cp1==cp2" << endl;
}
if (s11 < s22)
{
cout << "s2大" << endl;
}
else if (s11 > s22)
{
cout << "s1大" << endl;
}
else if (s11 == s22)
{
cout << "s1和s2相等" << endl;
}
getchar();
return 0;
}