关于在KEIL中对字符数组赋值字符串操作的奇怪问题?
发布网友
发布时间:2023-07-15 09:16
我来回答
共4个回答
热心网友
时间:2023-11-27 16:14
字符串只能在定义的时候初使化。如果在程序执行时要对其值只能单独操作,即只能单独赋值,或是循环赋值!
例如:
int c[10] = "abc";
或
int c[10];
....//其他执行代码
c[0] = 'a';
c[1] = 'b';
c[2] = 'c';
c[3] = '\0' ;
热心网友
时间:2023-11-27 16:15
嗯,这个问题我也遇见过,在其他的编程环境是可以这样赋值的,但在keil中是非法的,我解决的方法如下:
假如说你要程序执行时对a[]字符赋值:你可以先将可能出现的或者要用的字符串,在开始定义的时候,赋值给b[],c[],d[]....数组,程序执行的时候再来判断,是将b[]数组,还是c[]数组,或者其他数组赋给a[].例子如下:
#include<reg52.h>
void main()
{
string a[50];
char b1[50]="this is 89s51";
char b2[50]="this is lcd";
char b3[50]="welcome to the 8051";
if(这里写你的控制条件)
a[50]=b1[50];
if(这里写你的控制条件)
a[50]=b2[50];
if(这里写你的控制条件)
a[50]=b3[50];
}
热心网友
时间:2023-11-27 16:15
你所谓的“运行时赋字符串变量”,这个字符串哪里来的?
1. 固定的字符串。那么应当是常量数组,直接以字符拷贝即可;
2. 变长的字符串,例如来自串口。指针拷贝自串口缓冲区。
热心网友
时间:2023-11-27 16:16
c[10]="ABC"; 改成 c[]="ABC";