我愿意做的是我想将数组的所有值转换为各自的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]
谢谢! 我得到了前一个。但是,如果我想再次打印存储在屁股中的所有元素,该怎么办?我正在使用以下代码,它什么也没做。我没有收到任何错误。
#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;
}
答案 0 :(得分:2)
您的警告并非失败。它只是指出,一旦你存储它,你永远不会使用它!
答案 1 :(得分:1)
警告是正确的,您只需将ass
的值设置为不使用之后设置的值。如果您在循环后添加了让我们说cout
的警告就会消失:
std::cout << ass[0] << std::endl ;
我也不认为你需要第二个内循环,如果你想打印出ass
的每个元素,你可以在设置之后添加它。所以修复和添加打印出来可能如下所示:
for(int i=0; i<size; i++)
{
int p=name[i];
cout<<p<<"\n";
ass[i]=p;
std::cout << ass[i] << std::endl ;
}
答案 2 :(得分:1)
警告:变量'ass'设置但未使用[-Wunused-but-set-variable]
此警告只是说您已设置变量ass
,但您从未使用它。这根本不是错误。
例如,尝试输出此数组的值,警告将消失:
std::cout << ass[0] << std::endl;
此警告中有一小部分内容:http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html。
答案 3 :(得分:1)
您的警告只是告诉您没有使用变量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"