不采用系统库函数,自定义一个函数将你的学号作为一个字符串存入一个字符数组,采用该函数将你的姓名作为一个字符串存入另一个字符数组,不采用系统库函数,自己编写--个函数将姓名字符串和学号字符串连接成一个字符串,再编写一- 个函数在连接后的字符串姓名和学号之间加入下划线字符’’,并输出这个字符串。编写main函数测试这些函数。
时间: 2024-03-21 12:39:58 浏览: 75
好的,以下是实现这些功能的代码:
```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`。
- 在连接字符串时,需要先将第一个字符串复制到目标字符串中,然后再将第二个字符串追加到目标字符串的末尾。
阅读全文