用c++解决以下问题:题目名称:颠倒大小 【题目描述】 输入一串包含空格的字符串,将字符串中的大写字母转成小写字母,小写字母转成大写字母输出。 【输入示例】 My name is PEIQI,AND you? 【输出示例】 mY NAME IS peiqi,and YOU?
时间: 2024-02-13 13:01:37 浏览: 51
下面是一个用 C++ 解决题目的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
getline(cin, str); //读入一行包含空格的字符串
for(int i = 0; i < str.length(); i++)
{
if(islower(str[i])) //小写字母转成大写字母
str[i] = toupper(str[i]);
else if(isupper(str[i])) //大写字母转成小写字母
str[i] = tolower(str[i]);
}
cout << str << endl; //输出转换后的字符串
return 0;
}
```
上面的代码中,我们使用了 string 类型来存储输入的字符串,并使用 getline 函数读入一行包含空格的字符串。然后,我们遍历字符串中的每个字符,如果是小写字母则转成大写字母,如果是大写字母则转成小写字母。最后,输出转换后的字符串即可。
相关问题
用c++编写:使用指针,输入任意一个字符串,将其中的大写字母转换成小写字母
好的,可以使用以下C++代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char str[100];
cout << "请输入字符串:";
cin >> str;
char *p = str;
while (*p != '\0') {
if (*p >= 'A' && *p <= 'Z') {
*p += 32; // 大写字母转换成小写字母
}
p++;
}
cout << "转换后的字符串为:" << str << endl;
return 0;
}
```
和C语言版的代码类似,该程序也是遍历输入的字符串中的每个字符,如果是大写字母,则将其转换成小写字母。最后输出转换后的字符串。
用c++语言解决问题:输入一个字符串,输出N个字符串,用空格隔开,表示这个字符串里含有的词语
### 回答1:
您好,我可以回答这个问题。要解决这个问题,您可以使用字符串分割函数 strtok(),将输入的字符串按照空格分割成多个子字符串,然后逐个输出即可。以下是示例代码:
```
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
fgets(str, sizeof(str), stdin);
str[strlen(str)-1] = '\'; // 去掉末尾的换行符
char *token = strtok(str, " ");
while (token != NULL) {
printf("%s ", token);
token = strtok(NULL, " ");
}
return ;
}
```
这段代码中,我们使用 fgets() 函数从标准输入读入一个字符串,然后使用 strtok() 函数将其按照空格分割成多个子字符串。最后逐个输出这些子字符串,每个子字符串之间用空格隔开。
### 回答2:
要用C语言解决此问题,首先需要明确输入和输出的形式。
输入:
用户需要输入一个字符串。可以通过使用C语言中的scanf或者gets函数来接收用户输入。
处理:
接收到用户输入的字符串后,需要对其进行处理,将其中的词语提取出来。可以通过循环遍历字符串的每一个字符,逐个判断是否为字母或数字,来确定一个词语的起始位置和结束位置。当遇到非字母或非数字字符时,则表示一个词语结束。将每个词语提取出来,并且存储到一个数组中。
输出:
将提取出的词语依次输出,之间以空格隔开。可以通过使用循环遍历数组,并使用printf函数输出每个词语,然后在每次输出之后加上一个空格。
具体代码如下所示:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define MAX_SIZE 100
int main() {
char input[MAX_SIZE];
char words[MAX_SIZE][MAX_SIZE];
int wordCount = 0;
// 接收用户输入的字符串
printf("请输入一个字符串:");
gets(input);
// 提取词语
int len = strlen(input);
for (int i = 0; i < len; i++) {
if (isalnum(input[i])) {
int j = 0;
while (isalnum(input[i+j])) {
words[wordCount][j] = input[i+j];
j++;
}
words[wordCount][j] = '\0'; // 在词语末尾添加结束符
wordCount++;
i += j;
}
}
// 输出词语
printf("提取出的词语为:");
for (int i = 0; i < wordCount; i++) {
printf("%s ", words[i]);
}
return 0;
}
```
这段代码可以实现接收一个用户输入的字符串,并将其中的词语提取出来并输出,其中词语之间以空格隔开。输出结果示例:
请输入一个字符串:Hello world! This is a test.
提取出的词语为:Hello world This is a test
这样就用C语言解决了输入一个字符串,输出N个字符串的问题。
### 回答3:
要用C语言解决这个问题,可以使用字符串处理函数和循环结构来实现。具体步骤如下:
1. 首先,声明一个字符串变量str,用于存储输入的字符串。
2. 使用scanf函数获取用户输入的字符串,并将其存储到str中。
3. 声明一个整型变量count,并初始化为0,用于计数。
4. 使用strtok函数将str按照空格来切割成多个子串。
5. 使用while循环遍历每个子串,直到子串为NULL为止。
6. 在while循环中,对于每个子串,将其输出,并在后面添加一个空格。
7. 每次输出一个子串后,将count加1。
8. 循环结束后,将count输出,即表示字符串中含有的词语数目。
下面是代码示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%[^\n]", str);
char* token = strtok(str, " ");
int count = 0;
while (token != NULL) {
printf("%s ", token);
count++;
token = strtok(NULL, " ");
}
printf("\n词语数目:%d\n", count);
return 0;
}
```
运行程序后,输入一个字符串,程序将会输出每个词语并用空格隔开,最后输出字符串中所含词语的数目。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)