【问题标题】:how to increase the size of 2d char array element size in c如何在c中增加2d char数组元素大小的大小
【发布时间】:2013-11-30 09:32:14
【问题描述】:
char symbol[100][100];
for(i=0;i<n;i++)
    {
       printf("enter the symbol\n");
       scanf("%s",&symbol[0][i]);   
    }
strncat(&symbol[0][0],"1",1);

输出 例如:- 在符号[0][0]中我输入了'a'

strncat(&symbol[0][0],"1",1);    

应该将输出作为 a1 但是我知道 symbol[0][0] 的大小是 1 字节,这就是为什么它只显示输出 a 如何增加 symbol[0][0] 的大小,使其能够显示所需的输出 a1

【问题讨论】:

  • char 只会包含一个字符。所以 symbol[0][0] 只会包含一个字符。我怀疑“1”在符号[0][1]
  • 你能告诉我一些其他的技术来实现我的目标
  • 应该使用 %c 作为 scanf 函数中的字符..:)
  • @naddiseo u wereright 1 isstored in symbol[0][1] but tell mesome technology so thati can concatenate a&1
  • @AugustusFrancis 使用 %c nt 满足我的需求

标签: c arrays string char multidimensional-array


【解决方案1】:

试试这个

strncat(symbol[0],"1",1);

int main()
{
    int i,n=1;
    char symbol[100][100];
    for(i=0;i<n;i++)
        {
           printf("enter the symbol\n");
           strcpy(symbol[0],"a");  
        }
    strncat(symbol[0],"1",1);
    printf(symbol[0]);
    return 0;
}

根据需要进行更改..:)..

【讨论】:

  • 我有二维数组是可能的(符号[0]?
  • 是的。 symbol[0] 是对二维矩阵第一行的引用。也就是说,它将第一个元素的内存地址存储在矩阵的第一行中。试试这个,让我知道它是否有效..:)
  • 忽略我的最后一个 cmnt 它的工作,但它在 symbol[0][0] 中存储 a 和在 symbol[0][1] 中存储 1
【解决方案2】:

a1由字符a和字符1组成。所以如果你想要一个双字符宽符号的矩阵,你可以声明一个 3D 数组,如

char symbol [100][100][2];

然后

scanf("%c%c", &symbol[0][i][0], &symbol[0][i][1]);

顺便说一句:嗯,您提到的单个elementsymbol 可以由基本元素或C/C++ 内部类型的符号组成。那么a1 在您的问题中是变量名称还是值?

【讨论】:

  • 但我想将 a1 存储在单个元素中,它的代码很大 m 只是在这里发布一小部分
  • a1 是值,就像我说我在符号 [0][0] 中给出输入 (a) 我只想在符号 [0][0] 中输出 (a1)
猜你喜欢
  • 2018-04-14
  • 2015-08-22
  • 2013-02-22
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多