Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 交换C+中指针的数据+;_C++_Pointers - Fatal编程技术网

C++ 交换C+中指针的数据+;

C++ 交换C+中指针的数据+;,c++,pointers,C++,Pointers,我正在尝试编写一个交换函数,它将交换两个指针的数据。我得到了分割错误。有人能帮忙吗 另外,我知道string类内置了交换函数,但我正在尝试学习指针是如何工作的 #include<iostream> #include<cstring> using namespace std; void swap(char *, char *); int main(){ char *s1="blah"; char *s2="crap"; swap(s1, s2)

我正在尝试编写一个交换函数,它将交换两个指针的数据。我得到了分割错误。有人能帮忙吗

另外,我知道string类内置了交换函数,但我正在尝试学习指针是如何工作的

#include<iostream>
#include<cstring>

using namespace std;

void swap(char *, char *);

int main(){
    char *s1="blah";
    char *s2="crap";
    swap(s1, s2);
    cout<<s1<<endl<<s2<<endl;
    return 0;
}

void swap(char *s1, char *s2){
    char *t1 = new char[strlen(s1)+1];
    char *t2 = new char[strlen(s2)+1];
    for(int i=0; i<=strlen(s1); i++){
        t1[i] = s1[i];
    }
    for(int i=0; i<strlen(s2); i++){
        t2[i] = s2[i];
    }
    cout<<*t1<<endl;
    cout<<*t2<<endl;
    *s1 = *t2;
    *s2=*t1;

}
#包括
#包括
使用名称空间std;
无效互换(字符*,字符*);
int main(){
char*s1=“诸如此类”;
char*s2=“垃圾”;
互换(s1,s2);

cout您可以使用
swap
函数作为

void swap(char **s1, char **s2){

    char *temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
 swap(&s1, &s2);
并将此函数称为

void swap(char **s1, char **s2){

    char *temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
 swap(&s1, &s2);
如果您使用
c++
,您可以使用


您可以使用
swap
功能作为

void swap(char **s1, char **s2){

    char *temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
 swap(&s1, &s2);
并将此函数称为

void swap(char **s1, char **s2){

    char *temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}
 swap(&s1, &s2);
如果您使用
c++
,您可以使用


1)<代码> i>代码> iReal:.IAMMLIN:我不认为这是一个重复的问题,因为交换字符串是一个完全不同的问题,而不是交换内联。我认为它不是一个复制品,但它也是一个相当糟糕的书面问题。对于初学者,选择一种语言。C和C++是不同的语言,并且两者都有指针,但类似的东西。<代码> char *s1=“BLAH”;< /C> >不是C++和<代码> STD::cout@MSalters:
char*s1=“诸如此类”“I/CODE是有效的C++ 1”(<代码> >代码>相关:.@ IAMMLIN:我认为这不是问题的复制品,因为交换字符串是一个完全不同于交换int的问题。我认为它不是一个复制品,但它也是一个相当糟糕的问题。对于初学者,选择一种语言。C和C++是不同的语言,并且两者都有POI。NTTES,但像<代码> CHAR*S1=“BLAH”之类的东西; >不是C++和<代码> STD::cout@MSalters:
char*s1=“blah”
是有效的c++参考版本:
void swap(const char*&s1,const char*&s2){const char*temp=s1;s1=s2;s2=temp;}
//调用
swap(s1,s2)OP(C++),如果你使用C++,你可以一直使用“代码> > STD::交换或回家!OP是C++,这是交换THECTS的方法。参考版本:<代码> VoIP交换(conchch*&S1,conchch**s2){const char *TEMP= S1;S1= S2;S2= TeMp;}交换(S1,S2)如果你使用C++,你可以一直使用<代码> STD::SWIFT/COD> STD::交换或回家!OP是C++,这是交换事物的方式。