『壹』 c語言:用指針實現字元串大小的比較,應該怎樣做呢
字元串比較,可採用循環遍歷字元串,用對應位置的指針所指向的字元進行比較,當相等時,循環,遇到不等或其中一個字元串結束時,結束循環,返回對應指針的對應的字元的差值,根據差值判斷兩個字元串的大小:
返回值大於0,則前串大,
返回值小於0,則前串小,
返回值等於0,兩個字元串相等。
參考代碼:
#include<stdio.h>
int stringcompare(char *a,char *b)
{
while( *a && *a == *b )
{
a++;
b++;
}
return *a-*b ;
}
int main()
{
int ret;
char a[10];
char b[10];
printf("請輸入字元串a: ");
gets(a);
printf("請輸入字元串b: ");
gets(b);
ret=stringcompare(a,b);
if ( ret > 0 )
printf("a>b\n");
else if ( ret < 0 )
printf("a<b\n");
else
printf("a=b\n");
system("pause");
return 0;
}
運行結果:
請輸入字元串a:
abcde
請輸入字元串b:
acd
a<b
請輸入字元串a:
acd
請輸入字元串b:
abcde
a>b
請輸入字元串a:
abc
請輸入字元串b:
abc
a=b
『貳』 c語言里,指針比較兩個數的大小
inta=24,b=55;
int*p=&a;
int*q=&b;
if(*p<*q)
{
printf("a<b ");
}
else
{
printf("a>=b ");
}
『叄』 C語言指針變數比較
首先要 分清, 是在 聲明中 還是在語句中。
聲明中,例如:
int a=1, b=2;
int *p, *q; // 聲明 *p 和 *q 是指針,用於指向 int 型數據。
p=&a; q=&b; //語句, p 和 q 是指針 指向的數據 的地址,p 指向 a, q 指向 b.
if ( p < q) printf("...."); // 語句, p 和 q 是 "地址", 地址大小的比較。即 &a,&b 的比較。
若是 if ( *p < *q) printf("...."); // 語句, *p 和 *q 是 "數值「 的比較,即 a,b 的比較,現在 a=1,b=2。
即,語句中 有星號的是 數值,沒星號的是地址。
你的2道題里,p,q 是 地址。是地址值的比較。
『肆』 C語言指針法三個數比較大小!求指錯!
你對指針的認識和操作存在問題,請多看書並多練習體會
#include<stdio.h>
voidmain()
{
inta,b,c,*p1,*p2,*p3,*p;
p1=&a;
p2=&b;
p3=&c;//指針變數賦值不應該帶*
scanf("%d%d%d",p1,p2,p3);
if(*p1>*p2)
{
p=p1;//交換方法錯誤,這樣才對
p1=p2;
p2=p;
}//保證a<=b
if(*p1>*p3)
{
p=p3;
p3=p1;
p1=p;
}//保證a<=c
if(*p2>*p3)
{
p=p2;
p2=p3;
p3=p;
}//保證b<=c但這里並沒有改變abc的值
printf("%d%d%d ",*p1,*p2,*p3);
}
『伍』 請教c語言指針問題,利用指針比大小
inthuandi(int*a,int*b)
{
int*temp;
temp=a;
a=b;
b=temp;
}
出在這個函數裡面
交換的是a和b的值。 這個是交換形參本身的值,無法帶回主函數。
要影響實參,那麼只能交換*a和*b的值。
『陸』 c語言怎麼比較整型指針大小
#include<stdio.h>
voidmain()
{
intaa,bb,cc,dd;
int*a=&aa,*b=&bb,*c=&cc,*d=ⅆ
printf("Pleaseinput4number ");
scanf("%d%d%d%d",&aa,&bb,&cc,&dd);
intmax,min;
max=*a;min=*a;
if(max<*b)max=*b;
if(max<*c)max=*c;
if(max<*d)max=*d;
if(min>*b)min=*b;
if(min>*c)min=*c;
if(min>*d)min=*d;
*a=max;
*d=min;
printf("maxnumberis%d ",*a);
printf("minnumberis%d ",*d);
}
你指針理解有些問題吧,不能這么賦值,看看修改的
這個用冒泡或選擇排序法會更簡便
『柒』 c語言關於指針比大小的問題,求解析
輸入2,3
輸入為:max=2,
min=3
注意:
swap(int
*p1,int
*p2){
int
*temp;
temp
=
p1;
p1
=
p2;
p2
=
temp;
}
函數參數p1,p2是形參(恰巧與main中的p1,
p2同名),swap只交換了參數p1,
p2的值,而沒有改變main中兩個變數p1,
p2!!
『捌』 請問在c語言中,怎樣利用指針來比較多個字元串的大小
每個字元串用一個指針指向首地址 再設置一個計數器
在尾地址前指針移動計數器就加1
最後可以通過比價計數器的大小來比較字元串長度
『玖』 C語言中用指針方法比較三個數大小
void exchange(int *p1,int *p2,int *p3)
{
void ex(int *p11,int *p22);
if(*p1<*p2) ex(*p1,*p2);//ex(p1,p2);傳遞指針
if(*p1<*p3) ex(*p1,*p3);// ex(p1,p3);
if(*p2<*p3) ex(*p2,*p3);// ex(p2,p3);
}
望採納
『拾』 C語言里的指針怎麼比大小,都是地址到底誰大呀
本來就不存在誰大誰小,只有當指針是指向數組或字元串中元素時可以進行一些代數操作
如果是要比較指針指向的值的大小,請使用*操作符……但注意只有*p指向的數據類型可以比較才有效
此處是指向字元串的,大小就是p所指的元素(字元)在字元串中的前後順序