用C++编写带有函数的程序,函数表达式fun(str,c)功能是从字符数组str中删除值为c变量的字符。字符中保存字符串,同一字符的大小写按不同字符处理)
时间: 2023-07-15 22:10:42 浏览: 80
下面是一个示例程序,其中包含函数表达式fun(str,c):
```c++
#include <iostream>
#include <cstring>
using namespace std;
void fun(char *str, char c) {
int len = strlen(str);
int i, j;
for (i = 0, j = 0; i < len; i++) {
if (tolower(str[i]) != tolower(c)) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[100];
char c;
cout << "Please enter a string: ";
cin >> str;
cout << "Please enter a character to remove: ";
cin >> c;
fun(str, c);
cout << "Result: " << str << endl;
return 0;
}
```
该程序通过遍历输入的字符串,跳过与输入字符c相同的字符,将其余字符复制到新的字符串中。由于字符大小写不同被视为不同字符,因此使用 `tolower()` 函数将所有字符转换为小写字符进行比较。最后,将新字符串的末尾设置为零以表示字符串的结束。
相关问题
编写函数fun,函数的功能是:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时,输入字符串为:turbo c and borland c++, 从键盘上输入字符:n ,则输出后变为:turbo c ad borlad c++,如果输入的字符在字符串中不存在,由字符串照原样输出。 注意:源程序存在文件prog.c中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句
下面是函数fun的代码:
```c
void fun(char *str, char c){
int i, j;
for (i = 0, j = 0; str[i] != '\0'; i++){
if (str[i] != c && str[i] != (c + 32) && str[i] != (c - 32)){
str[j++] = str[i];
}
}
str[j] = '\0';
}
```
函数说明:
函数名称:fun
函数功能:从字符串中删除指定的字符,同一字母的大、小写按不同字符处理。
函数参数:
- char *str:指向输入字符串的指针;
- char c:指定要删除的字符。
函数返回值:无。
函数实现:
- 使用两个变量 i 和 j 分别表示原字符串和新字符串的下标;
- 遍历原字符串中的每个字符,如果当前字符不是要删除的字符或其大、小写形式,则将其添加到新字符串中;
- 最后,在新字符串的末尾添加一个空字符 '\0',表示字符串的结束。
使用C++编写一个函数void fun(char *s),函数的功能是把字符串s中的所有字符前移一个位置,字符串中的第一个字符移到最后。
### 回答1:
以下是函数的实现:
```cpp
void fun(char *s)
{
char first = s[0];
int len = strlen(s);
for (int i = 0; i < len - 1; i++)
{
s[i] = s[i + 1];
}
s[len - 1] = first;
}
```
函数首先将字符串中的第一个字符保存在变量 `first` 中,然后将字符串中的每个字符向前移动一个位置。最后,将 `first` 放置在字符串的最后一个位置。
注意,这个函数假设输入的字符串不是空字符串。如果需要,可以添加相应的检查来确保输入的字符串不为空。
### 回答2:
您好!以下是使用C编写的函数void fun(char *s):
```c
#include <stdio.h>
#include <string.h>
void fun(char *s) {
char firstChar = s[0]; // 保存字符串的第一个字符
for (int i = 1; i < strlen(s); i++) {
s[i - 1] = s[i]; // 前移一个位置
}
s[strlen(s) - 1] = firstChar; // 第一个字符移到最后
}
int main() {
char str[20];
printf("请输入一个字符串:");
scanf("%s", str);
fun(str);
printf("处理后的字符串为:%s\n", str);
return 0;
}
```
这个函数接收一个字符串作为参数,并且它使用循环语句将字符串中的所有字符都向前移动一个位置,即将每个字符都用其后面的字符进行覆盖。然后,将保存的第一个字符放置在字符串的最后一个位置上。
在主函数中,我们从用户那里接收一个字符串,并将其传递给fun函数进行处理。最后打印处理后的字符串。
例如,如果输入的字符串为"Hello",处理后的字符串将变为"elloH"。
### 回答3:
使用C编写一个函数void fun(char *s),实现把字符串s中的所有字符前移一个位置,即把字符串中的第一个字符移到最后。
函数实现如下:
```c
void fun(char *s)
{
// 判断字符串是否为空或只有一个字符
if(s == NULL || strlen(s) <= 1)
{
return;
}
char firstChar = s[0]; // 记录第一个字符
// 将字符串中的字符向前移动一个位置
for(int i = 1; s[i] != '\0'; i++)
{
s[i - 1] = s[i];
}
// 把第一个字符移到最后
s[strlen(s) - 1] = firstChar;
}
```
这个函数可以按照如下方式调用:
```c
int main()
{
char str[] = "Hello";
printf("原始字符串:%s\n", str);
fun(str);
printf("处理后的字符串:%s\n", str);
return 0;
}
```
输出结果为:
```
原始字符串:Hello
处理后的字符串:elloH
```
经过函数处理后,字符串中的字符"Hello"变成了"elloH",即原始字符串的第一个字符"H"移到了最后。
阅读全文