gpt4 book ai didi

c++ - 基本的 C 风格字符串复制

转载 作者:行者123 更新时间:2023-11-28 03:45:15 25 4
gpt4 key购买 nike

我正在尝试进行 C 风格的字符串复制,但有些地方不正常。我做错了什么?

#include <iostream>
using std::cout;
using std::cin;
using std::endl;
int main() {
char string_a[20]="Good day!";
char string_b[30]="Hi!";
int i=0;
cout << "string a: " << string_a << endl;
cout << "string b: " << string_b << endl;
while (*string_a++ = *string_b++) {
cout << ++i << endl;
}
cout << "string a: " << string_a << endl;
cout << "string b: " << string_b << endl;
return 0;
}

最佳答案

你不能这样做:

string_a++

如果 string_a 被定义为一个数组。这只适用于指针,并且数组仅在特定情况下衰减为指针。

如果你改变:

while (*string_a++ = *string_b++) {
cout << ++i << endl;
}

进入:

char *pa = string_a, *pb = string_b;     // a "specific circumstance" :-)
while (*pa++ = *pb++) {
cout << ++i << endl;
}

然后它将正常工作,输出:

string a: Good day!
string b: Hi!
1
2
3
string a: Hi!
string b: Hi!

关于c++ - 基本的 C 风格字符串复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com