如何输入字符串数组,C语言字符串和字符数组有什么区别,怎么定义空的字符串和字符数组
答案:1 悬赏:30 手机版
解决时间 2021-08-20 22:05
- 提问者网友:浮克旳回音
- 2021-08-20 05:20
如何输入字符串数组,C语言字符串和字符数组有什么区别,怎么定义空的字符串和字符数组
最佳答案
- 五星知识达人网友:拜訪者
- 2021-08-20 05:47
首先,C必然定义为字符数组,C语言没有定义字符串的关键字,C语言用字符数组处理字符串。如果需要动态长度字符串必须用字符指针实现。我写了一个类似的程序。
#include
#include
#include
int main(void) {
const int SIZE_INC=16;
char *a=abcd;
char *b=bcdef;
char *astr, *cptr;
char ch, ich;
int csize=0, cread=0;
// 读入未知长度字符串,以回车或者EOF结束
printf(Input a string:\n);
cptr = astr = (char *)malloc(SIZE_INC);
csize = SIZE_INC;
ich = getchar();
for (;;) {
if (ich == '\n' || ich == EOF)
ch = '\0';
else
ch = ich;
if (cread == csize) {
astr = (char *)realloc(astr, csize + SIZE_INC);
csize += SIZE_INC;
cptr = astr + cread;
}
*cptr = ch;
if (ch == '\0') break;
cread++; cptr++;
ich = getchar();
}
if (!strcmp(astr,a))
printf(The string you input equals string a.\n);
else if (!strcmp(astr,b))
printf(The string you input equals string b.\n);
else
printf(Your string is: %s\n,astr);
system(pause);
return 0;
}
#include
#include
#include
int main(void) {
const int SIZE_INC=16;
char *a=abcd;
char *b=bcdef;
char *astr, *cptr;
char ch, ich;
int csize=0, cread=0;
// 读入未知长度字符串,以回车或者EOF结束
printf(Input a string:\n);
cptr = astr = (char *)malloc(SIZE_INC);
csize = SIZE_INC;
ich = getchar();
for (;;) {
if (ich == '\n' || ich == EOF)
ch = '\0';
else
ch = ich;
if (cread == csize) {
astr = (char *)realloc(astr, csize + SIZE_INC);
csize += SIZE_INC;
cptr = astr + cread;
}
*cptr = ch;
if (ch == '\0') break;
cread++; cptr++;
ich = getchar();
}
if (!strcmp(astr,a))
printf(The string you input equals string a.\n);
else if (!strcmp(astr,b))
printf(The string you input equals string b.\n);
else
printf(Your string is: %s\n,astr);
system(pause);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯