编写一个完整代码使得char *temp[]={"112233"}中添加字符串"12345"后变为 char *temp[]={"112233","12345"}
时间: 2023-07-02 16:13:33 浏览: 41
好的,下面是代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *temp[] = {"112233"};
int len = sizeof(temp) / sizeof(char*);
char *new_temp[len + 1];
memcpy(new_temp, temp, len * sizeof(char*));
char *str = "12345";
new_temp[len] = malloc(strlen(str) + 1);
strcpy(new_temp[len], str);
for (int i = 0; i < len + 1; i++)
{
printf("%s\n", new_temp[i]);
}
return 0;
}
```
首先获取原数组的长度,然后创建一个新的数组,将原数组拷贝到新数组中。接着在新数组中添加要插入的字符串,并将其地址保存到新数组的最后一位。最后遍历新数组并输出每一个元素。
相关问题
如何在char *temp[]={"112233"}中添加字符串"12345"后变为 char *temp[]={"112233","12345"}
这里需要注意的是,char *temp[]={"112233"} 是一个字符指针数组,也就是说,数组的每个元素都是一个指向char类型的指针,而不是一个字符串。所以,我们需要先创建一个新的字符串数组来存储这些字符串。
具体实现可以按照以下步骤进行:
1. 创建一个新的字符串数组,长度为原数组长度加1。
2. 将原数组中的所有元素逐个复制到新数组中。
3. 将要添加的字符串"12345"复制到新数组的最后一个元素中。
4. 释放原数组的内存空间。
5. 将新数组的指针赋值给原数组的指针。
代码示例:
```
// 原数组
char *temp[] = {"112233"};
// 计算原数组的长度
int len = sizeof(temp) / sizeof(char *);
// 创建新数组,长度为原数组长度加1
char **new_temp = (char **)malloc((len + 1) * sizeof(char *));
// 将原数组中的所有元素逐个复制到新数组中
for (int i = 0; i < len; i++) {
new_temp[i] = temp[i];
}
// 复制要添加的字符串到新数组的最后一个元素中
new_temp[len] = "12345";
// 释放原数组的内存空间
free(temp);
// 将新数组的指针赋值给原数组的指针
temp = new_temp;
```
执行完上述代码后,char *temp[] 就变成了 {"112233", "12345"}。
如何在char *temp[]={"112233",“12345”}中删除字符串"12345"后变为 char *temp[]={"112233"}
在C语言中,字符串数组是不能改变大小的,因此删除字符串"12345"后,我们需要将剩余的字符串向前移动,然后将最后一个元素置为NULL,表示数组结束。
以下是实现该功能的代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char *temp[] = {"112233", "12345", NULL};
int len = sizeof(temp) / sizeof(char*) - 1;
int i, j;
for (i = 0; i < len; i++) {
if (strcmp(temp[i], "12345") == 0) { // 找到要删除的字符串
for (j = i; j < len-1; j++) { // 将后面的字符串向前移动
temp[j] = temp[j+1];
}
temp[j] = NULL; // 最后一个元素置为NULL
break;
}
}
for (i = 0; i < len-1; i++) {
printf("%s ", temp[i]); // 输出删除后的字符串数组
}
return 0;
}
```
输出结果为:"112233"。
需要注意的是,由于字符串数组最后一个元素必须为NULL,因此我们在声明字符串数组时就将最后一个元素置为NULL。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)