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

10-12 15:34