(一)、什么是char类型?
1、char是字符指针数据类型,它的本质是个指针,也就是地址,它指向了一个char类型的内存单元,指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说地址指向该变量单元,将地址形象化的称为指针。意思是通过它能找到以它为地址的内存单元。
2、字符变量的取值是字符常量即单个字符。字符变量的类型说明符是char。字符变量类型说明的格式和书写规则都与整型变量相同。C语言允许对整型变量赋以字符值,也允许对字符变量赋以整型值。在输出时, 允许把字符变量按整型量输出,也允许把整型量按字符量输出。
3、字符通常应用于在电脑和电信领域中,是一个信息单位,对使用字母系统或音节文字等自然语言,字符大约对应为一个音位、类音位的单位或符号。字符是可使用多种不同字符方案或代码页来表示的抽象实体。
(二)、在C的引用方法
- 如果单独定义一个字符: eg :char c; %c
- 如果定义一个字符串: eg char a[]; 或则 char* . %s ;
(三)、char的常用经典列题
1.求字符串的长度:
格式: strlen(char);
1.1代码展示:
#include <iostream> using namespace std; int main() { char s[] = "abcdef"; int m; m = strlen(s); cout << "char类型的长度为:" << m << endl; return 0; }
1.2效果展示:
2.字符串的合并:
格式:strcat(char*,const char * )
2.1代码展示:
#include <iostream> #include <string.h> using namespace std; int main() { char s[6]; cout << "请输入第一个字符串:" << endl; cin >> s; const char* s1 = "456"; cout << "链接后为:" << strcat(s, s1) << endl; return 0; }
2.2效果展示:
3.字符串和字符指针的联结
3.1代码展示:
#include <iostream> using namespace std; int main() { char a[]="hello"; char* s=a; cout<<"指针访问数组的格式:"<<endl; int i; for(i=0;i<strlen(a);i++) { cout<<*s++; } return 0; }
3.2效果展示:
4.字符串指针的输出:
4.1代码展示:
#include <iostream> using namespace std; int main() { char* s; //字符串指针变量 s = "hello"; //把字符串赋值给字符串指针,编译器会给字符串一个地址; cout << "字符串的地址:" << &s << endl; //表示变量本身所在的内存单元地址 cout << "字符串的地址:" << s << endl; //表示s的单元所保存的地址 for (int i = 0; i < 5; i++) { cout << "字符串指针的值为:" << s[i] << endl; //这里会输出字符串的首个元素,而不是整个字符串 } cout << "字符串指针分配的单元:" << sizeof(s) << endl; //用来保存地址的 return 0; }
4.2效果展示:
5.
(四)、char与char*的区别:
1.char可以手动输入char*不能
1.1代码展示:
#include <iostream> using namespace std; int main() { char s[10]; cout << "请输入字符串s的数据:" << endl; for (int i = 0; i < 3; i++) { cin >> s[i]; } cout << "字符串s[]的长度为:" << 3 << endl; cout << "字符串s[]的数值为:"; for (int i = 0; i < 3; i++) { cout << s[i] << " "; } return 0; }
1.2效果展示: