为什么我的字符串(字符数组)没有打印? 我尝试在C++中执行一个简单的程序,但我不能得到这个结果。现在我应该怎么做?我在不同的平台上尝试了不同版本的GCC编译器的代码。 #include <iostream> #include <string.h> using namespace std; int main() { int i,m,j; char a[10],b[10],temp; cout << " give the string " << endl; cin >> a; cout << a; m=strlen(a); j=0; for(i=m;i>0;i--){ b[j]=a[i]; cout << " inloop "<<b; j++; } cout << b << endl; return 0; #包括 #包括 使用名称空间std; int main() { int i,m,j; 字符a[10],b[10],温度; 库塔; 不能0;我--){ b[j]=a[i]; C中的一切都是0索引的。a[i]在第一次迭代时是a[strlen(a)],它是\0

为什么我的字符串(字符数组)没有打印? 我尝试在C++中执行一个简单的程序,但我不能得到这个结果。现在我应该怎么做?我在不同的平台上尝试了不同版本的GCC编译器的代码。 #include <iostream> #include <string.h> using namespace std; int main() { int i,m,j; char a[10],b[10],temp; cout << " give the string " << endl; cin >> a; cout << a; m=strlen(a); j=0; for(i=m;i>0;i--){ b[j]=a[i]; cout << " inloop "<<b; j++; } cout << b << endl; return 0; #包括 #包括 使用名称空间std; int main() { int i,m,j; 字符a[10],b[10],温度; 库塔; 不能0;我--){ b[j]=a[i]; C中的一切都是0索引的。a[i]在第一次迭代时是a[strlen(a)],它是\0,c++,arrays,char,C++,Arrays,Char,如果您的输入是bobo,则数组a的内容将为 a[0] = 'b' a[1] = 'o' a[2] = 'b' a[3] = 'o' a[4] = '\0' 循环从a[4]开始(因为strlen(a)==4),所以b字符串将是: b[0] = '\0' b[1] = 'o' b[2] = 'b' b[3] = 'o' b[4] = 'b' 打印它将导致打印“”以更正代码。 您需要从m-1迭代到0。然后在字符串末尾添加\0 #include <iostream> #include &

如果您的输入是
bobo
,则数组
a
的内容将为

a[0] = 'b'
a[1] = 'o'
a[2] = 'b'
a[3] = 'o'
a[4] = '\0'
循环从a[4]开始(因为strlen(a)==4),所以b字符串将是:

b[0] = '\0'
b[1] = 'o'
b[2] = 'b'
b[3] = 'o'
b[4] = 'b'
打印它将导致打印“”以更正代码。 您需要从m-1迭代到0。然后在字符串末尾添加\0

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
  int i,m,j;
  char a[10],b[10],temp;
  cout << " give the string " << endl;
  cin >> a;
  cout << a;
  m=strlen(a);
  j=0;
  for(i=m-1;i>=0;i--){ // Iteration changed here 
    b[j]=a[i];
    cout << " inloop "<<b;
    j++;
  }
  b[j] = '\0'; // Add this line
  cout << endl << b << endl;
  return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int i,m,j;
字符a[10],b[10],温度;
库塔;
cout=0;i--){//此处更改了迭代
b[j]=a[i];

就目前的情况而言,你不可能得到这个问题的答案,因为你没有说你想要的结果是什么,而且心灵感应很难。你似乎在尝试反转字符串。使用
std::string
,它具有字符串操作所需的所有功能。“我无法获得该结果”我们不是算命的。告诉我们预期的结果和实际的,以及你提供的输入。有没有理由使用C++字符串?@马赫什?为什么我在读你的评论时想到了一个回形针的图像?谢谢,但是为什么我不能用CUT B(抱歉我把这个评论从手机上放出来)@user2253623您可以这样做。问题出在for语句中。您正在
b[0]
中复制
'\0'
'\0'
是字符串终止字符。