使用char *指针来操作字符串
时间: 2024-12-13 18:24:52 浏览: 8
在C语言中,`char*`类型的指针用于存储字符串。由于字符串本质上是由一系列字符组成的,并且以'\0'(空字符)结束,所以你可以使用`char*`指向一个字符数组,并通过解引用这个指针来访问每个字符。以下是几个常见的操作:
1. **声明字符串**:
```c
char *str = "Hello, World!"; // 字符串常量,实际上在内存中是不可修改的
```
2. **初始化指针并遍历字符串**:
```c
char *ptr = str; // 指向字符串的开始
while (*ptr != '\0') { // 只要当前字符不是'\0'
printf("%c", *ptr); // 输出字符
ptr++; // 移动指针到下一个字符
}
```
3. **获取字符串长度**:
```c
int len = strlen(str); // 使用内置函数strlen计算字符串长度
```
4. **复制字符串**:
```c
char new_str[50]; // 新建一个缓冲区
strncpy(new_str, str, sizeof(new_str)); // 将原字符串复制到新字符串,注意防止溢出
new_str[len] = '\0'; // 确保新字符串结尾有'\0'
```
5. **连接字符串**:
```c
char result[strlen(str) + strlen(addendum) + 1]; // 计算总长度
strcat(result, str);
strcat(result, addendum);
```
6. **动态分配和释放内存**:
```c
char *dynamic_str = malloc(strlen(str) + 1); // 动态分配内存
strcpy(dynamic_str, str);
// ...使用完之后记得 free(dynamic_str);
```
阅读全文