C++|char基础操作(初始化,赋值,判断是否为空)

时间:2025-03-23 08:43:25

文章目录

  • 初始化
  • 赋值
  • 判断是否为空:
  • char*(字符指针)
  • char[](字符数组)
  • char a[] 和 char* 的区别

在C++中,char类型可以用于存储单个字符。与之相关的还有char*(字符指针)和char[](字符数组)。以下是这些类型的基础操作和它们之间的区别。

char是一个存储单个字符的数据类型。

初始化

char ch = 'A'; // 初始化字符变量ch为'A'
char a[10] = "123";
or
char a[10] = "";
or
char a[10];
meset(a,0,sizeof(a));

赋值

ch = 'B'; // 将字符变量ch赋值为'B'
char a[10] = "";
string b = "string";
memcpy(a,b.c_str(),sizeof(a));
or
strcpy(a,b.c_str());

判断是否为空:

1.判断char第一个是否为\0

if (a[0] == '\0') {
		cout << "1:字符串为空。"<< endl;
	}
	else {
		cout << "1:字符串不为空。" << endl;
	}

2.判断char长度是否得0

int b = strlen(a);
if (strlen(a)==0)
{
	cout << "2:字符串为空。" << endl;
}
else {
	cout << "2:字符串不为空。" << endl;
}

3.对比两个字符串是否相等

//strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。
//基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。
if (strcmp(a,"")==0)
{
	cout << "3:字符串为空。" << endl;
}
else {
	cout << "3:字符串不为空。" << endl;
}

4.单个字符串

if (ch == '\0') { // 判断ch是否为空字符
    // ch是空字符
}

char*(字符指针)

char*是一个指向字符的指针,它可以指向字符串常量、字符变量或动态分配的字符数组。

初始化

const char* str = "Hello"; // 指向字符串常量
char ch = 'A';
char* ptr = &ch; // 指向字符变量的地址

赋值

ptr = "World"; // 使ptr指向新的字符串常量

判断是否为空

if (ptr == nullptr) { // 判断ptr是否为空指针
    // ptr是空指针
}

char[](字符数组)

char[]是一个固定大小的字符数组,用于存储字符串。

初始化

char str[] = "Hello"; // 初始化字符数组

赋值

str[0] = 'J'; // 将字符数组的第一个字符赋值为'J'

判断是否为空

if (str[0] == '\0') { // 判断字符数组是否为空字符串
    // str是空字符串
}

char a[] 和 char* 的区别

  • char a[] 声明了一个字符数组,它有固定的大小,并且大小在编译时确定。
  • char* 声明了一个指向字符的指针,它可以指向任何地方,包括字符串常量、字符数组的首地址等。

示例

#include <iostream>

int main() {
    // char
    char ch = 'A';
    std::cout << "char: " << ch << std::endl; // 输出: A

    // char*
    const char* str = "Hello";
    std::cout << "char*: " << str << std::endl; // 输出: Hello

    // 修改char*指向的内容
    // str[0] = 'J'; // 错误:str指向的是字符串常量,不能修改

    // char[]
    char strArray[] = "World";
    std::cout << "char[]: " << strArray << std::endl; // 输出: World

    // 修改char[]的内容
    strArray[0] = 'W';
    std::cout << "char[] after modification: " << strArray << std::endl; // 输出: World after modification

    return 0;
}

在这个示例中,我们展示了charchar*char[]的基本操作。char用于存储单个字符,char*用于指向字符(通常是字符串),而char[]用于存储字符串。注意,字符串常量是不可修改的,所以尝试修改char*指向的字符串常量会导致编译错误。而char[]是一个可修改的字符数组。