C++2.输入一个字符串以及一个整数n,将串中前n个字符删除后输出。要求用函数实

如题所述

第1个回答  2021-05-07
#include<stdio.h>
#include<string.h>

void delete_n(char *str, int n)
{
int i;
if(n < 0)
n = 0;
if(n > strlen(str))
n = strlen(str);
for(i = 0; str[n]; i++, n++)
{
str[i] = str[n];
}
str[i] = '\0';
}

int main()
{
char str[255];
int n;
scanf("%s %d", str, &n);
delete_n(str, n);
printf("%s\n", str);
return 0;
}
第2个回答  2023-03-11
在C++中,有多种方法可以输入一个字符串和一个整数,例如使用cin、cin.get ()、cin.getline ()、getline ()等函数。
为了简单起见,我选择使用cin和getline ()函数来输入一个字符串和一个整数。
要实现将字符串中前n个字符删除后输出的功能,我可以定义一个函数delete_n_chars (string s, int n),它接受一个字符串s和一个整数n作为参数,并返回删除前n个字符后的新字符串。
函数的具体实现如下:
#include <iostream>#include <string>using namespace std;//定义函数delete_n_charsstring delete_n_chars(string s, int n) { //如果n小于等于0或者大于等于s的长度,则直接返回原字符串
if (n <= 0 || n >= s.length()) { return s;
} //否则,使用substr()函数从第n+1个字符开始截取子串,并返回
else { return s.substr(n);
}
}int main() { //声明变量
string str; //用来存储输入的字符串
int num; //用来存储输入的整数

//提示用户输入
cout << "请输入一个字符串:" << endl; getline(cin, str); //使用getline()函数获取一行输入
cout << "请输入一个整数:" << endl;
cin >> num; //使用cin获取一个整数

//调用函数delete_n_chars并输出结果
cout << "删除前" << num << "个字符后的新字符串为:" << endl;
cout << delete_n_chars(str, num) << endl; return 0;
}

以下是运行示例:
请输入一个字符串:
Hello World!
请输入一个整数:
5
删除前5个字符后的新字符串为:
World!