c语言 关于数组的问题

我想读取一个文件,如下图 先读取(x+y)*5-z 之后 再 读取3 4 5和 1 2 0, x y z分别对应了3 4 5 和 1 2 0 . 然后让3替代x,4替代y,5替代z,就像下面的输出图一样,我只能做到把3 4 5传到里面, 但是1 2 0 就还是 (3+4)*5-5. 请问有什么好的方法求解吗?

#include<stdio.h>
void main() { FILE *fp; char buffer[256],str[256]; int i,x,y,z;
  if ( fp=fopen("test.txt","r") ) {
    fgets(str,255,fp);
    while ( !feof(fp) ) {
      fscanf(fp,"%d %d %d",&x,&y,&z);
      i=0;
      while ( str[i]!=0 ) {
        if ( str[i]=='x' ) buffer[i]=x+'0';
        else if ( str[i]=='y' ) buffer[i]=y+'0';
        else if ( str[i]=='z' ) buffer[i]=z+'0';
        else buffer[i]=str[i];
        i++;
      }
      buffer[i]=0; printf("%s\n",buffer);
    }
    fclose(fp);
  } else printf("无法打开数据文件。\n");
}

温馨提示:内容为网友见解,仅供参考
无其他回答

c语言关于定义二维数组的问题
在C语言中,二维数组可以视为一个表格或者矩阵。你可以通过指定数组的行数和列数来定义它。例如,定义一个有3行4列的二维数组可以写作:`int array[3][4];`。这表示数组名为`array`,包含3行和4列,总共可以存储12个整数。你也可以在定义时初始化数组的值,如:`int array[3][4] = {{1, ...

c语言关于定义二维数组的问题
理解二维数组的关键在于明确其结构:第一维代表数据的开始位置,第二维则指特定数据在组内的位置。例如,数组a[][4]意味着a是一个由4个元素构成的一维数组的集合,编译器会根据你给定的初始值数量自动计算第一维的长度,通常是元素总数除以4,若有余数,长度会加1,未赋值的部分会默认为0。然而,...

关于C语言中数组定义问题
(1)在堆栈段中分配内存,由于太大无法分配,所以错误。(2)在数据段中分配内存,数据段可以分配,无错误。(3)数组比(1)需要的内存少,在堆栈段大小范围内,可以分配,无错误 (4)同(3)

c语言数组问题
答案是:abcbcc 第一个for循环之后,x[3][4] = {"abc", "abc", "abc"} 第二个for循环的时候,&x[0][0]就是第一行第一个元素的地址所以输出abc &x[1][1]就是第二行第二个元素的地址所以输出bc &x[2][2]就是第三行第三个元素的地址所以输出c ...

c语言数组的大小
另外,方括号中的常量表达式可以是“数字常量表达式”,也可以是“符号常量表达式”。但不管是什么表达式,必须是常量,绝对不能是变量。C 语言不允许对数组的长度进行动态定义,换句话说,数组的大小不依赖程序运行过程中变量的值。非通常的情况为动态内存分配,此种情况下数组的长度就可以动态定义。

c语言数组问题
问一:c语言开辟数组,如果里面存的是整数,那么没有复制之前,数组中默认的值为零,还是乱码。答:C语言声明数组变量时,只分配相应的空间和地址,而不对里面存放的数据初始化。不管是int、float、还是char型等,即里面存的无论是整数、小数还是字符,再没有复赋值之前,数组中默认的值都是乱码,而不...

C语言数组基本问题
第一:为什么p=&s非法:因为C++数组中数组名字相当于是指向数组第一个元素的指针 所以 &s相当于取一个指针的地址,你必须用 指向指针的指针int **p = &s。这样才能保存。第二:而p=&s[i]合法 s[i]是数组中的第i个元素的值。所以你可以用&s[i]取到的是数组第i个元素的地址, int *p =...

C语言。数组的一点问题
答案是D a数组中存储的是'A','B','C','D','E','F','\\0'比b数组要多一个字符串结束符'\\0'所以A,B,C选项全错。

关于C语言二组字符数组问题?
您这谈不上什么机制,就是数组越界了。在C语言中定义数组char name[1][20],那么它的内存大小就指定了1行20个字符大小。不能越界赋值或访问!你对错误的代码看到的结果不能说明任何问题。你想要的是动态数组。应该用malloc和realloc函数来实现动态数组,这里有几个注意点:1、你输入的是字符串长度不...

c语言二维数组问题求解
c语言的数组在定义时的方括号里的数字就是数组的大小,比如 char ch[100],数组大小就是100,但是多数组进行操作时,是从0开始的,ch[0],就是第一个,ch[99]是第100个。这道题目 int x[2][3],表示一个2行3列的二维数组,所以c是正确的 ...

相似回答