给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换。
输入
输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据。
接下来是C组测试数据,每组数据输入均为0,1字符串,保证串长为偶数位(串长<=50)。
输出
请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。
样例输入 Copy
2
0110
1100
样例输出 Copy
1001
1100
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define MAX_STRING_SIZE (50)
typedef struct {
char ch[MAX_STRING_SIZE];
int length;
}String;
typedef struct slist
{
String str;
struct slist * next;
}str_list;
int main()
{
int c = 0;
str_list * head = NULL;
str_list * end = NULL;
str_list * new = NULL;
scanf("%d", &c);
for(int i = 0; i < c; i++)
{
new = (str_list *)malloc(sizeof(str_list));
memset(new, 0, sizeof(str_list));
scanf("%s", new->str.ch);
new->str.length = strlen(new->str.ch);
if(end != NULL)
{
end->next = new;
end = new;
}else{
end = new;
head = end;
}
}
str_list * mov = head;
while(mov != NULL)
{
for(int i = 0; i < mov->str.length; i++)
{
printf("%c", mov->str.ch[i] == '1'?'0':'1');
}
printf("\n");
mov = mov->next;
}
return 0;
}
串指的是字符串?
#include <stdio.h>
#include <string.h>
#define max 51
void swap(char t[],int n)
{
for(int i=0;i<n;i++)
{
if(i%2==0)
{
char tem=t[i];
t[i]=t[i+1];
t[i+1]=tem;
i++;
}
}
}
int main()
{
char t[max];
int c;
scanf("%d",&c);
fflush(stdin);
while(c--)
{
gets(t);
swap(t,strlen(t));
puts(t);
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
char s[51] = {0};
int C,i,j,len=0;
char t;
scanf("%d",&C);
for(i=0;i<C;i++)
{
scanf("%s",s);
len = strlen(s);
for(j=0;j<len;j+=2)
{
t = s[j];
s[j] = s[j+1];
s[j+1]=t;
}
printf("%s\n",s);
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main(){
int T;
char s[51];
int length;
char temp;
int i;
scanf("%d",&T);
while(T--){
scanf("%s",s);
length=strlen(s);
for(i=0;i<length-1;i+=2){
temp=s[i];
s[i]=s[i+1];
s[i+1]=temp;
}
printf("%s\n",s);
}
return 0;
}
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
using namespace std;
int T;
string str;
int main() {
cin >> T;
while (T--) {
cin >> str;
for (int i = 0; i < str.length(); i += 2)
printf("%c%c", str[i + 1], str[i]);
}
return 0;
}
#include <iostream>
#include <cstring>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
int c;
cin >> c;
while(c--)
{
string s;
cin >> s;
//双指针算法
for (int i = 0,j = i + 1;j < (int)s.size();i+=2,j+=2)
{
//交换字符操作
char temp;
temp = s[i];
s[i] = s[j];
s[j] = temp;
}
for (int k = 0;k < (int)s.size();k++) cout << s[k];
cout << endl;
}
return 0;
}
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,tot1,tot2;
string s;
char a[55],b[55];
signed main(){
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
scanf("%lld",&n);
while(n-->0){
cin>>s;
tot1=0,tot2=0;
for(register int i=0;i<s.size();++i){
if((i+1)%2==0){
b[++tot2]=s[i];
}
else{
a[++tot1]=s[i];
}
}
if(tot1>tot2)cout<<a[tot1--];
for(register int i=1;i<=tot1;++i){
cout<<a[i]<<b[i];
}
puts("");
}
}
博主参考下面链接看看
https://b23.tv/auFUQYD