c ++ string 交换其中两个字母位置
时间: 2023-06-14 07:04:10 浏览: 334
你可以通过访问字符串中的每个字符并交换它们来交换两个字母的位置。下面是一个示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
int main() {
string s = "hello";
swap(s[1], s[2]); // 交换第二个和第三个字母
cout << s << endl; // 输出 "hlelo"
return 0;
}
```
在上面的示例中,我们使用了 `swap` 函数来交换字符串中的两个字符。我们可以通过访问字符串中的单个字符来获取要交换的两个字母的位置。在这个例子中,我们交换了第二个字母 'e' 和第三个字母 'l' 的位置。
相关问题
每两个字母前后交换,包括感叹号 句号 空格等所有字符 C语言代码
在C语言中,如果你想要实现每两个字母前后交换的功能,可以编写一个简单的循环处理字符串的函数。下面是一个示例代码,它会接受一个字符串作为输入,并返回一个新的字符串,其中字符按照每两个字母交替排列:
```c
#include <stdio.h>
#include <string.h>
void swap_pairs(char *str) {
int len = strlen(str);
if (len <= 1 || len % 2 == 0) {
printf("输入的字符串长度不足或为偶数,无法进行每两个字母交换。\n");
return;
}
for (int i = 0; i < len - 1; i += 2) {
char temp = str[i];
str[i] = str[i + 1];
str[i + 1] = temp;
}
}
int main() {
char input[100]; // 假设输入不超过100个字符
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin);
// 移除fgets读取的换行符
input[strcspn(input, "\n")] = '\0';
swap_pairs(input);
printf("变换后的字符串: %s\n", input);
return 0;
}
```
当你运行这个程序并输入一个字符串时,例如 "Hello, World!",输出将会是 "!dlroW ,olleH"。
每两个字母前后交换,包括感叹号 句号等所有字符 不包括空格 C语言代码
在C语言中,你可以通过两层循环来实现这个需求。首先遍历输入字符串,然后交换每个非空字符与其后的字符。这里是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
void swap_chars(char *str) {
int len = strlen(str); // 获取字符串长度
for (int i = 0; i < len / 2; i++) { // 遍历到一半位置
char temp = str[i]; // 保存当前字符
str[i] = str[len - 1 - i]; // 交换字符
str[len - 1 - i] = temp; // 将刚交换过去的字符放回原位置
}
}
int main() {
char input[] = "Hello! World."; // 示例输入字符串
printf("Original string: %s\n", input);
swap_chars(input);
printf("After swapping characters: %s\n", input);
return 0;
}
```
当你运行这段代码时,输入的"Hello! World."会变成".dlroW! olleH"。
阅读全文