我愿意做的是将数组的所有值转换为它们各自的ASCII值,然后将它们存储在另一个数组中。我的代码能够将字符值转换为ASCII,但无法将它们存储在另一个数组中。请帮帮我。
#include <iostream>
#include <string>
using namespace std;
int main(){
char ass[10];
char name[]= "Chaitanya";
int size=sizeof(name);
for(int i=0; i<size; i++){
int p=name[i];
cout<<p<<"\n";
for(int j=0; j<size; j++){
ass[j]=p;
}
}
return 0;
}
当我尝试运行该程序时,出现以下错误消息:
warning: variable ‘ass’ set but not used [-Wunused-but-set-variable]
谢谢!
我得到了前一个。但是,如果我想再次打印存储在ass中的所有那些元素,该怎么办?我正在使用以下代码,但它什么也不做。我没有任何错误。
#include <iostream>
#include <string>
using namespace std;
int main(){
char ass[10];
char name[]= "Chaitanya";
int size=sizeof(name);
for(int i=0; i<size; i++){
int p=name[i];
cout<<p<<"\n";
for(int j=0; j<size; j++){
ass[j]=p;
}
}
for(int q=0; q<size; q++){
cout<<ass[q];
}
return 0;
}
最佳答案
您的警告只是告诉您您没有使用ass
变量。这不是错误,但是您的代码确实有问题:
int size = sizeof(name);
for (int i = 0; i < size; i++)
{
int p = name[i];
for (int j = 0; j < size; j++)
{
ass[j] = p;
}
}
第二个for循环将只用单个字符
ass
覆盖p
中的每个字符。不需要嵌套的for循环,只需分配主循环中的字符即可:for (int i = 0; i < size; i++)
{
int p = name[i];
ass[i] = p;
}
此外,这可以通过标准库功能来简化。例如:
#include <iostream>
#include <string>
int main()
{
std::string ass;
std::string name = "Chaitanya";
for (auto a : name)
{
std::cout << static_cast<int>(a);
}
ass = name;
std::cout << ass; // "Chaitanya"
关于c++ - 无法在C++中将值存储在数组中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18984492/