将一个字符串存入另一个数组
时间: 2023-08-25 10:36:38 浏览: 127
在C++中可以使用strcpy函数将一个字符串存入另一个数组。
strcpy函数的原型为:
```c++
char* strcpy(char* dest, const char* src);
```
其中,dest是目标字符串数组,src是源字符串数组。
使用方法如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char str1[] = "Hello, world!";
char str2[20];
strcpy(str2, str1); // 将str1复制到str2中
cout << "str2: " << str2 << endl;
return 0;
}
```
输出结果为:
```
str2: Hello, world!
```
在这个例子中,我们首先声明了两个字符数组str1和str2,其中str1中存储了一个字符串"Hello, world!"。然后我们使用strcpy函数将str1中的字符串复制到str2中,最后输出了str2的值,结果为"Hello, world!"。
相关问题
不采用系统库函数,自定义一个函数将你的学号作为一个字符串存入一个字符数组,采用该函数将你的姓名作为一个字符串存入另一个字符数组,不采用系统库函数,自己编写--个函数将姓名字符串和学号字符串连接成一个字符串,再编写一- 个函数在连接后的字符串姓名和学号之间加入下划线字符’’,并输出这个字符串。编写main函数测试这些函数。
好的,以下是实现这些功能的代码:
```c++
#include <iostream>
using namespace std;
// 将学号转换为字符串
void intToStr(int num, char str[])
{
int i = 0;
while (num > 0)
{
str[i++] = num % 10 + '0';
num /= 10;
}
str[i] = '\0';
// 反转字符串
int len = strlen(str);
for (int j = 0; j < len / 2; j++)
{
char temp = str[j];
str[j] = str[len - j - 1];
str[len - j - 1] = temp;
}
}
// 将姓名和学号连接成一个字符串
void strConcat(char name[], char num[], char str[])
{
int i = 0;
for (int j = 0; name[j] != '\0'; j++)
{
str[i++] = name[j];
}
for (int j = 0; num[j] != '\0'; j++)
{
str[i++] = num[j];
}
str[i] = '\0';
}
// 在姓名和学号之间加下划线
void addUnderline(char str[])
{
int len = strlen(str);
for (int i = len; i >= 5; i--)
{
str[i] = str[i - 1];
}
str[4] = '_';
}
int main()
{
char name[20] = "张三";
int num = 123456;
char numStr[20];
char str[40];
intToStr(num, numStr);
strConcat(name, numStr, str);
addUnderline(str);
cout << str << endl;
return 0;
}
```
输出结果为:
```
张三_123456
```
注意事项:
- 代码中的长度、下标等都是基于字符数组下标从0开始的规则,如果采用其他规则需要调整代码。
- 字符串数组的长度需要预留一个字符用于存放字符串的结束符`\0`。
- 在连接字符串时,需要先将第一个字符串复制到目标字符串中,然后再将第二个字符串追加到目标字符串的末尾。
用c语言编一个程序,输入一个字符串存入字符型数组中,然后复制其前面的5个字符组成新字符串存入另一个字符型数组后输出。要求用指向两个字符型数组首地址的指针变量来处理其中的字符
好的,下面是 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[100], str2[6];
char *p1, *p2;
printf("请输入一个字符串:");
scanf("%s", str1);
p1 = str1;
p2 = str2;
strncpy(p2, p1, 5);
printf("复制后的字符串为:%s\n", str2);
return 0;
}
```
这个程序首先定义了两个字符型数组 `str1` 和 `str2`,分别用来存放输入的字符串和复制后的字符串。然后定义了两个指向字符型数组首地址的指针变量 `p1` 和 `p2`,分别指向 `str1` 和 `str2` 的首地址。接着通过 `scanf` 函数读入字符串,将 `p1` 指向 `str1` 的首地址,`p2` 指向 `str2` 的首地址,最后使用 `strncpy` 函数将 `p1` 指向的前 5 个字符复制到 `p2` 指向的数组中。最后输出复制后的字符串。
希望能够帮助到你!
阅读全文