❶ 如何判斷兩個字元串是否相等
可以使用庫函數strcmp判斷,具體如下:
strcmp是C語言比較字元串的庫函數,形式為int strcmp(char *a, char *b);
該函數會對升喚a和b的每個字元,按照ascii碼值比較,如果二者完掘圓全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。
所以,要判斷字元串相等,可以使用。
關於上述strcmp()函數比較字元串的例子
#include <stdio.h>
#include <string.h>
int main(void)
{
char str_1[] = "abc";
char str_2[] = "abc";
char str_3[] = "ABC";
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. ");
else
printf("str_1 is not equal to str_2. ");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3. ");
else
printf("str_1 is not equal to str_3. ");
return 0;
}
❷ 電腦給單片機發送字元串,單片機比較收到的字元串是不是相同的
你的密碼是字元串,
先想清楚怎麼接收一串數據後再比較。
建議程序大巧困致流程:
先定義個全局變數數組,至少要大於密碼長度
用串口中斷接收,
接收到孝鉛念第一個數據後,存入數組首地址,打開定時中斷,
期間接收到的數據都放在數組里,順便記錄接收數據長激彎度
定時中斷到時檢驗數組內的值和密碼是不是相等
然後輸出結果
❸ 用單片機匯編比較兩個ASCII字元串是否相等的程序
比較兩個ASCII 碼字元串是否相等。字元串長度在內部RAM 3FH 單元,兩字元串的首地址分別為40H、50H。如果
兩個字元串相等,置CY=1,否則,置CY=0。
MOV R0,#40H
MOV R1,#50H
MOV R2,#3FH
LOOP1:MOV A,@R0
CLR C
__XRL A__,@R1
JNZ LOOP2
INC R0
INC R1
__DJNZ R2__,LOOP1
SETB C
RET
LOOP2:CLR C
RET
❹ 怎麼判斷兩個字元串是否完全一樣
C語言提供了幾個標鎮櫻准庫函數,可以比較兩個字元串是否相同。以下是用strcmp()函數比較字元串的一個例子:
#include <stdio. h>
#include <string. h>
void main (void);
void main(void)
{
char* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}
上例的列印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
strcmp()函數有兩個參數,即要比較的兩個沒旅遊字元串。strcmp()函數對兩個字元串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一:
----------------------------------------------------
返 回 值 意 義
----------------------------------------------------
<0 第一個字元串小於第二個字元串
0 兩個字元串相等 ·
>0 第一個字元串大於第二個字元串
----------------------------------------------------
在上例中,當比較str_1(即「abc」)和str_2(即「abc」)時,strcmp()函數的返回值為0。然而,當比較str_1(即"abc")和str_3(即"ABC")時,strcmp()函數返回一個大於0的值,因為按ASCII順序字元串「ABC」小於「abc」。
strcmp()函數有許多變體,它們的基本功能是相同的,都是比較兩個字元串,但其它地方稍有差別。下表列出了C語言提供的與strcmp()函數類似的一些函數:
-----------------------------------------------------------------
函 數 名 作 用
-----------------------------------------------------------------
strcmp() 對兩個字元串進行大小寫敏感的比較
strcmpi() 對兩個字元串進行大小寫不敏感的比較
stricmp() 同strcmpi()
strncmp() 對兩個字元串的一部分進行大小寫敏感的比較
strnicmp() 對兩個字元串的一枯銷部分進行大小寫不敏感的比較
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函數代替strcmp()函數,則程序將認為字元串「ABC」等於「abc」。
❺ 51單片機如何對接收的字元串進行判斷
對從s開始直到下一個s(如果有的話,沒有則設置命令超時)為止的字元串求CRC,然後switch case
一直都是這么做,串口中斷只管接收,不必分析數據格式,如果串格式定長,那更好辦了。。。
❻ 用串口工具發送了一個字元串,單片機端怎麼把它與設定好的一個字元串作比較判斷是否相等
首先單片機要知道什麼時候開始接收的字元串,在什麼時候結束。只有結束後才能開始字元串的比較。因此計算機發給單片機的字元串最好有「開始」和「結束」的標示,讓單片機判斷完全接收字元串後才開始比較。
字元串比較的函數就簡單了。比如這樣的函數:
int strcmp(char *S,char *D,char LEN)
{
int n;
for(n=0;n<LEN;n++)
if(S[n]!=D[n]) return 1;
return 0;
}
上面的函數至比較字元串S和D的前LEN個字元,如果遇到不同的字元就不需要比較了,立即返回1,如果被比較的部分相同就返回0.
❼ 如何判斷字元串是否相等
可以使用庫函數strcmp判斷:strcmp是C語言比較字元串的庫函數,形式為int strcmp(char *a, char *b);該函數會對a和b的每個字元,按照ascii碼值比較,如果二者完全相同返回0;如果a的ascii碼值先出現較大者,會返回1;否則返回-1。所以,要判斷字元串相等,可以使用。
"); else printf("str_1 is not equal to str_2.
"); if (strcmp(str_1, str_3) == 0) printf("str_1 is equal to str_3.
"); else printf("str_1 is not equalto str_3.
");} 上例的列印輸出如下所示: str_1 is equal to str_2. str_1 is not equal to str_3. strcmp()函數有兩個參數,即要比較的兩個字元串。strcmp()函數對兩個字元串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一。
串接子串
「串接」是 Σ* 上的重要二元運算。對於 Σ* 中的兩個字元串 s 和 t,它們的串接被定義為在 s 中的字元序列之後跟隨著 t 中的字元序列,並被指示為 st。例如,Σ = {a, b, …, z},並且 s = bear 且 t = hug,則 st = bearhug 而 ts = hugbear。
字元串串接是結合性的,但非交換性運算。空串充當單位;對於任何字元串 s,有 εs = sε = s。所以,集合 Σ* 和串接運算形成了幺半群,就是從 Σ 生成的自由幺半群。此外,長度函數定義從 Σ* 到非負整數的幺半群同態。
以上內容參考:網路-字元串