数组
大佬们,能给我讲讲,如果有a和b两个数组,当我要比较a和b数组里面某一特点位置的大小,比如a="123",b="321",当我要比较a和b的时候可以用大于小于吗?如果a是字母b也是字母呢?如果我要比较特定位置是否相同,又该怎么办? 本帖最后由 风过无痕1989 于 2020-12-15 22:04 编辑
#include <stdio.h>
void main()
{
char a[] = { "123dkg" }, b[] = {"321jef"};
int i;
for (i = 0;i < 6;i++)
{
if (a > b)
{
printf("a[%d] = %c > b[%d] = %c", i, a, i, b);
}
if (a == b)
{
printf("a[%d]= %c = b[%d] = %c ", i, a, i, b);
}
if (a < b)
{
printf("a[%d]= %c < b[%d] = %c ", i, a, i, b);
}
printf("\n");
}
} 如果是数字、单个字符可以直接比,字符串可以用函数 strcmp() 。比如,str1[] = "abc" ,str2[] = "def",则 strcmp(str1 , str2) < 0,因为 str1 小于 str2。 你运行我2楼的程序,就得到答案了 风过无痕1989 发表于 2020-12-15 22:05
你运行我2楼的程序,就得到答案了
灰常感谢,但是我想问一下,我刚才试过,如果我定义,
char a[]={'a','b','c','A','DA','SA'},b[]={'a','2','c','B','DA','SA'};
单个字符都可以比较,但是字符数大于1之后,就不能比较了,后面两个输出都是A=A,A=A,如果是两个字符该怎么比较。 严凯 发表于 2020-12-16 15:35
灰常感谢,但是我想问一下,我刚才试过,如果我定义,
char a[]={'a','b','c','A','DA','SA'},b[]={'a' ...
DA 就不是一个字符了,而是字符串了,它们存贮占用的是两个数组单元,而不是一个字符数组单元能装得下的。
对字符串的比较,是先比较第一个字母,第一个字母大的字符串就大,第一个字母若相等,再比较第二个字母。这个也很好理解的,比如我们常用的按姓氏笔划排名字,若是同姓,看第二个汉字的拼音,谁小就谁在前面:赵一和赵五,赵五肯定排在前面,因为“五”的拼音 wu,“一”的拼音 yi,第一个字母 w 比 y 小 风过无痕1989 发表于 2020-12-16 15:54
DA 就不是一个字符了,而是字符串了,它们存贮占用的是两个数组单元,而不是一个字符数组单元能装得下 ...
谢谢!我靠,nb啊,讲的很生动,真的。但是如果我非要比较DA和SA的大小,除了使用函数,还有什么方法没? 严凯 发表于 2020-12-16 16:03
谢谢!我靠,nb啊,讲的很生动,真的。但是如果我非要比较DA和SA的大小,除了使用函数,还有什么方法没?
我上面那个例子,不就是没有使用函数吗,一个字符一个字符地比较 风过无痕1989 发表于 2020-12-16 16:57
我上面那个例子,不就是没有使用函数吗,一个字符一个字符地比较
#include<stdio.h>
int main()
{
char a[]={'a','b','c','A','SA','DA'},b[]={'a','2','c','B','DA','SA'};
int i;
for (i = 0;i < 6;i++)
{
if (a > b)
{
printf("a[%d] = %c > b[%d] = %c", i, a, i, b);
}
if (a == b)
{
printf("a[%d]= %c = b[%d] = %c ", i, a, i, b);
}
if (a < b)
{
printf("a[%d]= %c < b[%d] = %c ", i, a, i, b);
}
printf("\n");
}
return 0;
}
这个就是,假如我要比较DA和SA,但是编译器的结果是A=A? 严凯 发表于 2020-12-16 17:00
这个就是,假如我要比较DA和SA,但是编译器的结果是A=A?
#include<stdio.h>
int main()
{
char a[]={“SA}, b[]={"DA"}; // 字符串要用双引号,不能用单引号
int i;
for (i = 0;i < 6;i++)
{
if (a > b)
{
printf("a[%d] = %c > b[%d] = %c", i, a, i, b);
}
if (a == b)
{
printf("a[%d]= %c = b[%d] = %c ", i, a, i, b);
}
if (a < b)
{
printf("a[%d]= %c < b[%d] = %c ", i, a, i, b);
}
printf("\n");
}
return 0;
}
风过无痕1989 发表于 2020-12-16 17:10
不是,大佬,我的意思是比较整个DA和SA,因为S>D所以输出DA<SA,就比如张一小张三大,但不可能说张=张,一<三。应该是输出张一<张三啊,就怎么才能比较整个的值,并且输出整个,DA<SA 严凯 发表于 2020-12-16 17:14
不是,大佬,我的意思是比较整个DA和SA,因为S>D所以输出DA
大佬,人呢?
页:
[1]