要求将第一个字符串的偶数下标位置的字符复制到第二个字符串,将第一个字符串的奇数下标位置的字符复制到第三个字符串, 并显示。C++
时间: 2024-05-12 18:20:18 浏览: 185
语言实现:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str1[100], str2[50], str3[50];
int len, i;
printf("请输入一个字符串:");
scanf("%s", str1);
len = strlen(str1);
// 复制偶数下标位置的字符到str2
for (i = 0; i < len; i += 2)
{
str2[i / 2] = str1[i];
}
str2[i / 2] = '\0'; // 添加字符串结尾标志
// 复制奇数下标位置的字符到str3
for (i = 1; i < len; i += 2)
{
str3[i / 2] = str1[i];
}
str3[i / 2] = '\0'; // 添加字符串结尾标志
printf("偶数下标位置的字符:%s\n", str2);
printf("奇数下标位置的字符:%s\n", str3);
return 0;
}
```
运行示例:
```
请输入一个字符串:hello world
偶数下标位置的字符:hlol
奇数下标位置的字符:elwrd
```
相关问题
3. 判断某字符串下标为奇数的字符所组成的字符3. 判断某字符串下标为奇数的字符所组成的字符串与下标为偶数的字符所组成的字符串是否相等。用java串与下标为偶数的字符所组成的字符串是否相等。用java
在Java中,你可以通过遍历字符串并分别处理奇数索引和偶数索引的字符来完成这个任务。首先,你需要创建两个独立的字符串,一个用于存储奇数索引的字符,另一个用于存储偶数索引的字符。下面是一个简单的示例:
```java
String originalString = "Hello, World!";
String oddChars = "";
String evenChars = "";
for (int i = 0; i < originalString.length(); i++) {
if (i % 2 == 0) { // 如果索引是偶数
evenChars += originalString.charAt(i);
} else { // 索引是奇数
oddChars += originalString.charAt(i);
}
}
// 判断两个字符串是否相等
boolean areEqual = oddChars.equals(evenChars);
System.out.println("奇数位置字符组成的字符串: " + oddChars);
System.out.println("偶数位置字符组成的字符串: " + evenChars);
System.out.println("奇数和偶数位置字符组成的字符串是否相等: " + areEqual);
```
在这个例子中,我们检查每个字符的索引,如果是偶数则添加到`evenChars`,如果是奇数则添加到`oddChars`。最后,我们使用`equals()`方法比较这两个字符串。
把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)。 例如,形参s所指字符串为"abcdefgh",执行结果为"ahcbedgf"。
可以使用以下代码实现:
```python
def move_odd_chars(s):
even_chars = [c for i, c in enumerate(s) if i % 2 == 0]
odd_chars = [c for i, c in enumerate(s) if i % 2 == 1]
shifted_odd_chars = odd_chars[1:] + odd_chars[:1]
result = ""
for i, c in enumerate(s):
if i % 2 == 0:
result += even_chars[i // 2]
else:
result += shifted_odd_chars[i // 2]
return result
```
对于字符串 "abcdefgh",调用 `move_odd_chars("abcdefgh")`,得到的结果为 "ahcbedgf"。
阅读全文