【问题标题】:How to concatenate strings of numbers and then assign it to a 'long' type variable?如何连接数字字符串,然后将其分配给“长”类型变量?
【发布时间】:2019-11-09 23:29:32
【问题描述】:

我正在尝试生成一个代表一系列数字引用信息的“代码”,以最终在控制台屏幕上打印出来。让我做一个更好的解释:

我的应用需要存储一些称为“学院学生”的信息。它需要读取(从键盘):

课程(1 或 2), 级别(1至3), 文件编号(最多 8 个数字), 名和姓, 年平均校准。

我需要生成一个代码编号,表示课程、级别和文件编号。例如,第 2 级课程 1 的学生,文件编号为 045,将注册为“12045”。然后我必须将它存储在一个 int long 变量中。

注册完所有信息后,需要以特定方式对其进行排序,然后再将其打印到屏幕上。一切正常,但代码编号的正确生成。

当我打印生成的代码时,我的问题就出现了。我开始将课程、级别和文件编号的输入数字视为字符串,以使用“strcpy”和“strcat”函数来生成代码,然后将其解析为(long)。然后,我在每个学生身上打印了一个完全不同的生成代码。任何想法为什么会发生这种情况?

我正在使用按索引相关的单独向量和矩阵。我希望这是一个清晰而有用的问题。如果没有,请随时问我一个更好的问题,甚至删除它。这是我的第一个问题。谢谢!

从键盘读取信息

printf("\nIngresar Curso (1 a 2): ");
    fflush(stdin);
    gets(curso);
    while(strcmp(curso, "1")!=0 && strcmp(curso, "2")!=0) {
        printf("\aError. Ingresar Curso (1 a 2): ");
        fflush(stdin);
        gets(curso);
    }
    strcpy(codalumno, curso);
    printf("\nIngresar Nivel (1 a 3): ");
    fflush(stdin);
    gets(nivel);
    while(strcmp(nivel, "1")!=0 && strcmp(nivel, "2")!=0 && strcmp(nivel, "3")!=0) {
        printf("\aError. Ingresar Nivel (1 a 3): ");
        fflush(stdin);
        gets(nivel);
    }
    strcat(codalumno, nivel);
    printf("\nIngresar N de Legajo: ");
    fflush(stdin);
    gets(legajo);
    strcat(codalumno, legajo);

这是对 long 的解析和赋值(我不确定是否正常工作)

auxl=(int)codalumno;
    alumno[i]=auxl;

【问题讨论】:

  • 为什么不显示代码?
  • 对不起,我在修改代码之前上传了问题(它有很多西班牙语的 cmets 和变量名)我正在翻译它以将其与问题一起发布。

标签: c parsing matrix vector


【解决方案1】:

使用 atol() 函数。

auxl = atol(codalumno);

【讨论】:

  • 我不知道这个功能……我试过了,它现在可以正常工作了!非常感谢你!我开始在大学学习 C 语言。我很高兴在这里找到了所需的额外帮助:)
猜你喜欢
  • 2013-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-19
  • 2018-10-08
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
相关资源
最近更新 更多