【发布时间】:2022-01-06 11:03:40
【问题描述】:
如何替换字符数组中的两个字符?例如:
字符数组:peter
替换p和t这两个字符并给出如下输出:
teper
这是我的尝试(这是错误的):
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void swap(char*,char*);
main() {
int n,i,j;
char str[30][30];
printf("how many names?:");
scanf("%d",&n);
for(i=0;i<n;i++) {
printf("name %d?",i+1);
scanf("%s",str[i]);
}
for(i=0;i<n;i++) {
char ch1,ch2;
printf(" which letters of name %d?:",i+1);
scanf("%c%c",&ch1,&ch2);
swap(&ch1,&ch2);
printf("\n %s",str[i]);
}
}
void swap(char *a,char *b){
char temp;
temp=*a;
*a=*b;
*b=temp;
}
【问题讨论】:
-
请展示您的尝试。
-
请仅使用其中一个标签,C 或 C++ - 两种不同语言的解决方案可能大不相同。
-
有一个用于交换的标准函数模板。它叫
std::swap -
@TedLyngmo 这在 C 中不起作用。;-)
-
请注意 std::swap 是 C++ 的解决方案,而不是 C