Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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/9/google-cloud-platform/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++,并编写了几条接受字符串的字符串,显示了其中的字符数,还显示了输入字符串的倒数。这是我写的 #include <iostream> int main() { char string[25],rev_string[25]; int counter=0,length=0; std::cout << "\n Enter the string : "; std::cin >> string; while(counter==!'\0') { counter=counter+1; length=length+1; } counter=0; std::cout << "The string has "<<length<<" characters in it."; while(length>=0) { rev_string[counter]=string[length]; counter=counter+1; length=length-1; } std::cout << "\n The reverse of the given string is : "<<rev_string; return(0); } #包括 int main() { 字符字符串[25],rev_字符串[25]; int计数器=0,长度=0; std::cout>string; 而(计数器==!'\0') { 计数器=计数器+1; 长度=长度+1; } 计数器=0; 标准::cout_C++_Stdstring - Fatal编程技术网 string; 而(计数器==!'\0') { 计数器=计数器+1; 长度=长度+1; } 计数器=0; 标准::cout,c++,stdstring,C++,Stdstring" /> string; 而(计数器==!'\0') { 计数器=计数器+1; 长度=长度+1; } 计数器=0; 标准::cout,c++,stdstring,C++,Stdstring" />

无法运行反向字符串程序 我最近开始学习C++,并编写了几条接受字符串的字符串,显示了其中的字符数,还显示了输入字符串的倒数。这是我写的 #include <iostream> int main() { char string[25],rev_string[25]; int counter=0,length=0; std::cout << "\n Enter the string : "; std::cin >> string; while(counter==!'\0') { counter=counter+1; length=length+1; } counter=0; std::cout << "The string has "<<length<<" characters in it."; while(length>=0) { rev_string[counter]=string[length]; counter=counter+1; length=length-1; } std::cout << "\n The reverse of the given string is : "<<rev_string; return(0); } #包括 int main() { 字符字符串[25],rev_字符串[25]; int计数器=0,长度=0; std::cout>string; 而(计数器==!'\0') { 计数器=计数器+1; 长度=长度+1; } 计数器=0; 标准::cout

无法运行反向字符串程序 我最近开始学习C++,并编写了几条接受字符串的字符串,显示了其中的字符数,还显示了输入字符串的倒数。这是我写的 #include <iostream> int main() { char string[25],rev_string[25]; int counter=0,length=0; std::cout << "\n Enter the string : "; std::cin >> string; while(counter==!'\0') { counter=counter+1; length=length+1; } counter=0; std::cout << "The string has "<<length<<" characters in it."; while(length>=0) { rev_string[counter]=string[length]; counter=counter+1; length=length-1; } std::cout << "\n The reverse of the given string is : "<<rev_string; return(0); } #包括 int main() { 字符字符串[25],rev_字符串[25]; int计数器=0,长度=0; std::cout>string; 而(计数器==!'\0') { 计数器=计数器+1; 长度=长度+1; } 计数器=0; 标准::cout,c++,stdstring,C++,Stdstring,好的,!“\0”是真的,作为一个整数,它是1。所以你有while(counter==1),并且计数器被初始化为0,使得表达式立即假,所以循环永远不会执行 您可能打算写入!='\0'。但这仍然是一个问题,因为计数器以值0开始,并且0!=0仍然是false,循环不循环 当您输入Hey作为字符串时,字符H、e、y和\0被放置在字符串变量中。您希望找到\0字符所在的位置,我们在字符串[3]中看到了这些字符。那么为什么要将计数器与'\0'进行比较呢?也许您想要字符串[计数器] 当您获得Hey中的字符数时

好的,
!“\0”
真的
,作为一个整数,它是
1
。所以你有
while(counter==1)
,并且
计数器
被初始化为
0
,使得表达式立即
假,所以循环永远不会执行

您可能打算写入
!='\0'
。但这仍然是一个问题,因为
计数器
以值
0
开始,并且
0!=0
仍然是
false
,循环不循环

当您输入
Hey
作为字符串时,字符
H
e
y
\0
被放置在
字符串
变量中。您希望找到
\0
字符所在的位置,我们在
字符串[3]中看到了这些字符
。那么为什么要将
计数器
'\0'
进行比较呢?也许您想要
字符串[计数器]



当您获得
Hey
中的字符数时,即
3
,您开始反向循环,将索引3处的
\0
复制到索引
0
…所有4个字符按相反顺序:
\0
y
e
H
。不幸的是,开始处的
\0
将标记字符串的结尾,所以字符串将空。

C++是很难学习的,如果你把它当作C,你也会得到一些丑陋的习惯。请学习和练习C++。
#include <string>
#include <algorithm>
#include <iostream>

int main()
{
    std::string s;
    std::cin >> s;

    std::cout << "number of characters: " << s.size() << std::endl;

    std::reverse(s.begin(), s.end());
    std::cout << "reverse string: " << s << std::endl;
}
#包括
#包括
#包括
int main()
{
std::字符串s;
标准:cin>>s;

STD::CUD<代码>=!!' 0 ' < /C>不是你想要的。试试<代码>!=“0”< /代码>,也许除了计数器之外的东西,C++中你应该使用<代码> STD::String < /C> >代替 char []
另请参见。如果您不能使用
std::reverse
,那么我希望在某处看到
std::swap
。当然,您有,还有朋友。如果没有std::reverse,您将希望以指向开始和结束字符的指针开始,然后在(结束>开始)时交换
(不要交换整个字符串,否则你会将字符串反转两次,然后正好返回到开始的位置)我不知何故通过将
while(counter==!'\0')
更改为
while(string[counter]!='\0'),让程序显示其中有多少个字符
。但我仍然无法让程序显示反向字符串。它现在只是显示为空。我添加了一行
length=length-1;
,以防止它复制
\0
。这次程序显示反向字符串,但后面跟着一些随机字符,每次我运行程序时这些字符都不一样。也许您我需要将
\0
复制到某个地方?在循环后添加了
rev_string[counter]='\0';
,现在它工作正常。谢谢!
#include <string>
#include <algorithm>
#include <iostream>

int main()
{
    std::string s;
    std::cin >> s;

    std::cout << "number of characters: " << s.size() << std::endl;

    std::reverse(s.begin(), s.end());
    std::cout << "reverse string: " << s << std::endl;
}