c語言strcmp-ag真人国际官网
ⅰ strcmp在c語言中是什麼意思呢
strcmp函數是string compare(字元串比較)的縮寫,用於比較兩個字元串並根據比較結果返回整數。基本形式為strcmp(str1,str2),若str1=str2,則返回零;若str1
(1)c語言strcmp擴展閱讀:
規則:
當s1
當s1=s2時,返回值= 0;
當s1>s2時,返回正數。
即:兩個字元串自左向右逐個字元相比(按ascii值大小相比較),直到出現不同的字元或遇''為止。
ⅱ [c語言] 關於strcmp函數的用法。萬分感謝!
strcmp的原型是int strcmp(const char *s1,
const char *s2),s1、s2都被const修飾,可見函數體中對兩個字元串進行只讀操作。比較從左至右按字元一一對應進行,遇到不等時得出結果,停止操作;無論哪個字元串先到達'',''也參與比較。
當s1的某個字元的ascii值>s2對應字元的ascii值時,函數返回 1,反之返回-1,當s1、s2完全一樣(等長,對應字元相同)時返回0。
舉例代碼如下:
//#include"stdafx.h"//ifthevc 6.0,withthisline.
#include"stdio.h"
#include"string.h"
intmain(void){
char*s1="12345fjksld;ajfkl;",*s2="12a",*s3="12a";
printf("s1<-->s2:%d ",strcmp(s1,s2));//輸出-1,說明大小不由長度確定
printf("s2<-->s3:%d ",strcmp(s2,s3));//長度和字元對應相等是才輸出0
printf("s2<-->s1:%d ",strcmp(s2,s1));//是參數1與參數2對比而不是相反
printf(" ");
return0;
}
ⅲ c語言strcmp函數
兩個字元串自左向右逐個字元相比,出現不同的字元b和b
s1>s2,返回正數;
因為ascii碼中b在b後面
原型:int strcmp(const char firststring[], const char secondstring);
功能:比較兩個字元串firststring和secondstring
常式:
#include
#include
void main(void)
{
char buf1[] = "aaa";
char buf2[] = "bbb";
char buf3[] = "ccc";
int ptr;
ptr = strcmp(buf2,buf1);
if(ptr > 0)
cout <<"buffer 2 is greater than buffer 1"<
cout <<"buffer 2 is less than buffer 1"<
if(ptr > 0)
cout <<"buffer 2 is greater than buffer 3"<
cout <<"buffer 2 is less than buffer 3"<
運行結果是:buffer 2 is less than buffer 1
buffer 2 is greater than buffer 3
ⅳ c語言 strcmp
s1 ; s2 ;後,s1指向了"abcdef"中的b,s2指向了"ab"中b。strcmp比較的是兩個字元串,這里就是"bcdef"和"b",顯然前者大於後者,所以輸出是1而不是0。
ⅳ c語言字元比較(strcmp)
是string.h這個文件
給你改了下,你看下行不行
#include "stdio.h"
#include "conio.h"
#include
int strcmp1(char *p1,char *p2)
{
while ((*p1==*p2)&&(*p1!='\0'))
{p1 ;p2 ;}
return(*p1-*p2);
}
main()
{ char s1[100],s2[100];int k;
puts("請輸入字元串:");gets(s1);
puts("請輸入字元串:");gets(s2);
k=strcmp1(s1,s2);printf("%d\n",k);
printf("%d",strcmp(s1,s2));
getch();
}
循環條件控制好像錯了,
測試了下結果
相同的話 為0,前面大於後面 為正數,後面大於前面為負數
ⅵ c語言中strcmp的用法是什麼
int strcmp(char *str1, char *str2);
比較字元串str1和str2是否相同。如果相同則返回0;
如果不同,在不同的字元處如果str1的字元大於str2的字元,則返回1,否則返回-1
比如:
char a[]="abcd";
char *b="abcd";
char *d="abcde";
int d=strcmp(a,b); //那麼d的值是0
d=strcmp(b,d); //d的值是-1 因為 '\0' 比'e' 小
d=strcmp(d,b); //d的值是1,因為 'e' 比'\0'大
ⅶ c語言中strcmp的用法
strcmp是比較兩個字元串的大小,兩個字元串相同時返回0,第一個字元串大於第二個字元串時返回一個正值,否則返回負值。
比較兩個字元串的演算法是:逐個比較兩個串中對應的字元,字元大小按照ascii碼值確定,從左向右比較,如果遇到不同字元,所遇第一對不同字元的大小關系就確定了兩個字元串的大小關系,如果未遇到不同字元而某個字元串首先結束,那麼這個字元串是較小的,否則兩個字元串相等。
(7)c語言strcmp擴展閱讀:
c語言主要有以下特點:
1、c語言在很多方面都可以用,不僅僅是在軟體開發上,各類科研都是需要用到c語言的。具體應用比如我是學硬體的,單片機以及嵌入式系統都可以用c來開發。
2、c是結構式語言結構式語言的顯著特點是代碼及數據的分隔化, 即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰, 便於使用、維護以及調試。
c 語言是以函數形式提供給用戶的, 這些函數可方便的調用, 並具有多種循環、條件語句控製程序流向, 從而使程序完全結構化。
3、c語言功能齊全c 語言具有各種各樣的數據類型, 並引入了指針概念, 可使程序效率更高。另外c 語言也具有強大的圖形功能, 支持多種顯示器和驅動器。
而且計算功能、邏輯判斷功能也比較強大, 可以實現決策目的編游戲,編3d游戲,做資料庫,做聯眾世界,做聊天室,做photoshop做flash,做3dmax。
ⅷ c語言strcmp
strcmp用於比較兩字元串的大小;從字元串的第一位比起,依次比較兩字元串相同位置上字元的asciim碼值,當第一次出現字元不同時,若前者的ascii碼值較大,則該函數返回1,相等,則返回0,若前者小,則返回-1;若int a;a=strcmp("ande","anud");第一個不同的字元出現在第三位,前者為d,後者為u,而d的ascii值比u的ascii值大,故函數返回1,即a的值為1.
ⅸ c語言strcmp 使用方法
你錯在if 語句後面 漏了一對擴號,以致未做交換。
void fun(struct st s[])
{
int i,j,it;
struct st t;
for (i=0;i<2;i )
{it=i;
for (j=i 1;j<3;j )
if (strcmp(s[it].name,s[j].name)>0){ // 注意括弧
it=j;t=s[i];s[i]=s[it];s[it]=t;
};
}
}
scanf("%s",&stu[i],name); -- scanf("%s",&stu[i].name); // 點號
for (j=0;j<=2;j )
scanf("%d",&stu[i].score[j]);// 注意格式,一個%d, 不是3個
ⅹ c語言的strcmp是什麼意思
if( (g_token.rule_type_code, "-1") != 0)
這句是錯的,修改為:
if( strcmp(g_token.rule_type_code, "-1") != 0)
strcmp函數
strcmp函數是比較兩個字元串的大小,返回比較的結果。一般形式是:
i=strcmp(字元串,字元串);
其中,字元串1、字元串2均可為字元串常量或變數;i 是用於存放比較結果的整型變數。比較結果是這樣規定的:
①字元串1小於字元串2,strcmp函數返回一個負值;
②字元串1等於字元串2,strcmp函數返回零;
③字元串1大於字元串2,strcmp函數返回一個正值;那麼,字元中的大小是如何比較的呢?來看一個例子。
實際上,字元串的比較是比較字元串中各對字元的ascii碼。首先比較兩個串的第一個字元,若不相等,則停止比較並得出大於或小於的結果;如果相等就接著 比較第二個字元然後第三個字元等等。如果兩上字元串前面的字元一直相等,像"disk"和"disks" 那樣, 前四個字元都一樣, 然後比較第 五個字元, 前一個字元串"disk"只剩下結束符'\0',後一個字元串"disks"剩下's','\0'的ascii碼小於's'的ascii 碼,所以得出了結果。因此無論兩個字元串是什麼樣,strcmp函數最多比較到其中一個字元串遇到結束符'\0'為止,就能得出結果。
注意:字元串是數組類型而非簡單類型,不能用關系運算進行大小比較。
if("abc">"def") /*錯誤的字元串比較*/
if(strcmp("abc","def") /*正確的字元串比較*/