Devc++输入一个长度为N的字符串A,从其第K个字符起,插入长度为M的字符串B,输出新的长度为N+M的字符串,其中N、M均小于100,且K<=N
时间: 2023-12-03 20:43:01 浏览: 58
统计字符串中字母和数字个数
下面是一个示例代码,可以实现你的需求:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char A[101], B[101]; // N, M 均小于 100,所以分别定义长度为 101 的字符数组
int K, N, M;
cout << "请输入字符串 A:";
cin >> A;
N = strlen(A);
cout << "请输入字符串 B:";
cin >> B;
M = strlen(B);
cout << "请输入插入位置 K:";
cin >> K;
if (K > N) {
cout << "错误:插入位置不能大于字符串 A 的长度!" << endl;
return 0;
}
// 将字符串 A 中第 K 个字符及其之后的字符向后移动 M 个位置
for (int i = N - 1; i >= K; i--) {
A[i + M] = A[i];
}
// 将字符串 B 插入到 A 中的第 K 个字符位置
for (int i = 0; i < M; i++) {
A[K + i] = B[i];
}
// 输出新的字符串 A
cout << "新的字符串 A 为:" << A << endl;
return 0;
}
```
需要注意的是,由于输入的字符串没有空格,所以可以使用 `cin` 直接读入。如果需要输入带空格的字符串,则可以使用 `getline` 函数。同时,由于字符串是以空字符 `\0` 结尾的,所以在定义字符数组时需要多分配一个元素作为结尾符的位置。
阅读全文