无法在c ++中的数组中存储值

时间:2013-09-24 14:32:05

标签: c++ arrays loops

我愿意做的是我想将数组的所有值转换为各自的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;
    }

4 个答案:

答案 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"