c语言字符数组如何比较?

 我来答
匿名用户
2011-07-05
展开全部
首先,C必然定义为字符数组,C语言没有定义字符串的关键字,C语言用字符数组处理字符串。如果需要动态长度字符串必须用字符指针实现。我写了一个类似的程序。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
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;
}
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-05
展开全部
首先,C必然定义为字符数组,C语言没有定义字符串的关键字,C语言用字符数组处理字符串。如果需要动态长度字符串必须用字符指针实现。我写了一个类似的程序。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
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;
}
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东坡_居士
2011-07-05 · TA获得超过107个赞
知道答主
回答量:60
采纳率:0%
帮助的人:50.4万
展开全部
int cmp(char * str0, char * str1)
{
int i;
for(i=0;str0[i]!=0 && str1[i]!=0 && str0[i]==str1[i];i++);
return str0[i]-str1[i];
}
//返回值为0就表示相等,否则不等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜茂彦rc
2011-07-05 · TA获得超过1144个赞
知道小有建树答主
回答量:1314
采纳率:100%
帮助的人:1252万
展开全部
字符数组最后一个字符后面加个0,然后就可以使用strcmp比较了
追问
我知道了~
为了方便大家我补充一下
if (strcmp(a,c)==0)
a,c为数组
别人的答案也很不错~
但是这个比较简单谢谢大家
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式