C++编写函数,删除一个字符串s中的全部*,该字符串中只包含大小写字母和*。在主函数中输入字符串s,在自定义函数中完成删除工作,返回主函数输出删除后的字符串。s中字符的个数不超过100。 若字符串s为asas***JK*LO*****,则输出结果为asasJKLO。
时间: 2023-12-18 07:27:23 浏览: 79
以下是C++编写函数,删除一个字符串s中的全部*的代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
string deleteStar(string s) {
string result = "";
for (int i = 0; i < s.length(); i++) {
if (s[i] != '*') {
result += s[i];
}
}
return result;
}
int main() {
string s;
cin >> s;
cout << deleteStar(s) << endl;
return 0;
}
```
在主函数中,我们输入一个字符串s,然后调用自定义函数deleteStar(),该函数会遍历字符串s中的每个字符,如果该字符不是星号,则将其添加到结果字符串result中。最后,该函数返回结果字符串result,主函数将其输出即可。
例如,若字符串s为asas***JK*LO*****,则输出结果为asasJKLO。
相关问题
给定两个字符串s和t,编写一个函数来确定t是否是s的变位,即t是否是通过重新排列s中的字母而形成的。 请编写一个名为isAnagram(string s,string t)的函数来实现上述算法,返回true或false。在主函数中调用这个函数并输出结果。注意,输入字符串可能包含非字母字符,这里不考虑大小写。用c++写
好的,这是一个简单的字符串处理问题。我可以帮你写一个C++的实现,如下所示:
```c++
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
bool isAnagram(string s, string t) {
// 如果两个字符串长度不相等,则不可能是变位字符串
if (s.length() != t.length()) {
return false;
}
// 处理字符串中的非字母字符
for (int i = 0; i < s.length(); i++) {
if (!isalpha(s[i])) {
s.erase(i, 1);
i--;
}
if (!isalpha(t[i])) {
t.erase(i, 1);
i--;
}
}
// 将字符串中的字母按照字典序排序
sort(s.begin(), s.end());
sort(t.begin(), t.end());
// 判断两个字符串是否相等
return s == t;
}
int main() {
string s = "anagram";
string t = "nagaram";
if (isAnagram(s, t)) {
cout << "t是s的变位字符串" << endl;
} else {
cout << "t不是s的变位字符串" << endl;
}
return 0;
}
```
在这个实现中,我们首先判断两个字符串的长度是否相等,如果不相等,则不可能是变位字符串,直接返回false。然后我们对两个字符串中的非字母字符进行处理,将其删除。接着,我们将字符串中的字母按照字典序排序,最后判断两个字符串是否相等即可。
写一个定义函数func(char *p1,char *p2),比较两个字符串的大小,返回值为两个字符串中第一个不相等的字符的差值,并编写主函数验证。用c++
好的,我来为您编写一个C++程序,定义一个比较两个字符串大小的函数,并编写主函数进行验证。以下是代码实现:
```cpp
#include <iostream>
#include <cstring>
int func(const char *p1, const char *p2) {
int i = 0;
while (p1[i] != '\0' && p2[i] != '\0') {
if (p1[i] != p2[i]) {
return p1[i] - p2[i];
}
i++;
}
return p1[i] - p2[i];
}
int main() {
char str1[100], str2[100];
std::cout << "请输入第一个字符串: ";
std::cin.getline(str1, 100);
std::cout << "请输入第二个字符串: ";
std::cin.getline(str2, 100);
int result = func(str1, str2);
if (result == 0) {
std::cout << "两个字符串相等" << std::endl;
} else if (result > 0) {
std::cout << "第一个字符串大于第二个字符串" << std::endl;
} else {
std::cout << "第一个字符串小于第二个字符串" << std::endl;
}
std::cout << "第一个不相等的字符的差值: " << result << std::endl;
return 0;
}
```
这个程序实现了您要求的功能:
1. 定义了一个名为 `func` 的函数,它接受两个 `const char*` 类型的参数。
2. 在 `func` 函数中,我们使用一个 while 循环遍历两个字符串,比较对应位置的字符。
3. 如果发现不相等的字符,立即返回这两个字符的差值。
4. 如果循环结束后都没有发现不相等的字符,则比较两个字符串的长度,返回长度差。
5. 在 `main` 函数中,我们从用户那里获取输入的两个字符串。
6. 调用 `func` 函数比较这两个字符串。
7. 根据 `func` 函数的返回值,输出比较结果。
8. 最后,输出第一个不相等的字符的差值。
这个程序可以比较任意长度的字符串,并给出详细的比较结果。
阅读全文
相关推荐














