2

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

4 回答 4

2

你的警告不是失败。它只是指出,一旦你存储它,你永远不会使用它!

于 2013-09-24T14:33:58.063 回答
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 ;        
}
于 2013-09-24T14:35:44.960 回答
1

警告:变量 'ass' 已设置但未使用 [-Wunused-but-set-variable]

这个警告只是说你已经设置了变量ass,但你从不使用它。这根本不是错误。

例如,尝试为此数组输出一个值,警告将消失

std::cout << ass[0] << std::endl;

这里有这个警告的一小部分:http: //gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

于 2013-09-24T14:36:10.457 回答
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"
于 2013-09-24T14:43:26.533 回答