當前位置:首頁 » 編程語言 » c語言字元指針內容比較
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言字元指針內容比較

發布時間: 2023-02-15 21:37:37

c語言 指針 字元串比較

運行效果:
寫了一個,希望對你有幫助……
#include"stdio.h"
int
stringcmp(char
*str1,char
*str2)
{

while(*(str1++)==*(str2++));

return
*(str1-1)-*(str2-1);
}
int
main()
{

int
n;

char
str1[20],str2[20];

scanf("%d",&n);

while(n>0)

{

scanf("%s%s",str1,str2);

printf("%d",stringcmp(str1,str2));

}

return
0;
}

㈡ C語言指針讀取文件內容比對

  • 基本的,你的代碼有語法錯誤 printf(「登錄失敗」);這里的符號不是英文符號

  • 文本中保存的是兩個字元串(空格隔開),你是想讓第一個作為帳號,第二個為密碼嗎

  • fgets你指定了大小100,而且沒有那麼多字元能讀取,所以它把整個文件中的所有字元都讀取了,包含空格,gets()也一樣。

  • 所以你輸入帳號加密碼,中間用空格隔開才是正確的輸入方式

  • 然後我試了你的代碼,得到了正確的結果,文本中保存的123456 789//注意如果後面有回車換行也可能造成你的錯誤

㈢ 怎樣運用c語言指針變數比較兩個字元串是否相等請修改

#include
int
bijiao(char
*p_1,char
*p_2,int
c);
int
main(void)
{

char
a[21];

char
b[21];

int
i,t,c;

printf("定義字元串的元素個數為\n");

scanf("%d",&c);

while(getchar()!='\n')

continue;//這一句用來消除\n的影響

printf("為字元串連續輸入%d個\(少於20個\)字元回車結束\n",c);

for(i=0;i

{

scanf("%c",&a[i]);

}

while(getchar()!='\n')

continue;

printf("為字元串b連續輸入%d個\(少於20個\)字元回車結束\n",c);

for(i=0;i

{

scanf("%c",&b[i]);

}

while(getchar()!='\n')

continue;

t=bijiao(a,b,c);

printf("%d",t);

if(t==1)

printf("字元串a和b相同");

else

printf("字元串a與b不同");

return
0;
}
int
bijiao(char
*p_1,char
*p_2,int
c)
{

int
i,x=1;

for(i=0;i

{

if(*(p_1+i)!=*(p_2+i))

{

x=0;

break;

}

}

return
x;
}改動較大,不知是不是還符合你的本意

㈣ C語言程序 用指針實現字元串比較函數strcmp

其實你這里主要問題是不能接收到兩個輸入的
字元串

你這里的接受
規則
是輸入兩個字元串並用

號分隔,比如:abc,abc
但是這里就有一個問題了!計算機怎麼知道你輸入的,號是你輸入的第一個字元串的一個字元呢?還是你兩個字元串的分隔?
所以當你輸入abc,abc的時候計算識別你的第一個字元串是abc,abc
第二個字元串為\n
所以你這里得到的始終是1
至於解決的辦法:
讓計算機識別你的分隔
符號
那方法就很多了,比如
scanf("%s%s",a,b);輸入的時候用空白符(
空格
,tab,回車鍵)相間隔

㈤ c語言字元數組如何比較

1、C語言中字元是使用char來定義的,使用關系運算符(>,<,=)即可對字元進行比較。在編譯器中定義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語言中的字元比較!!

1、定義一個char * 類型指針,指向字元串首字元首地址。

2、定義一個數組,數組里存放元素為字元串各個字元+'\0',其中'\0'為碼0值,編譯器會自動在字元串的末尾添加此值。

先看這兩個"變數"分別是存在內存的哪個區域,(後面可知string1為常量)修改代碼如下,列印這兩個「變數」的內存地址,查看運行結果:

查看進程的內存分布情況,(詳情請查看:RobotCode俱樂部:手撕虛擬內存(1)——字元串在虛擬內存中的段位置與/proc虛擬文件系統),string1內存首地址為0x80485a0,string2內存首地址為0bfaebfd8。如下圖,可知這兩種定義方式,一種位於只讀區(0x8048000 < 0x80485a0 < 0x8049000),一種位於Stack區(0xbfacd000 < 0bfaebfd8 < 0xbfaee000)。可知,string1為常量(只讀的,許可權為r),在編譯時就確定了。string2存放在棧上,運行時確定。這也決定了,定義string1的方式適用於定義字元串常量,string2方式適用於字元串變數可能需要被修改的情況。同時需要注意的是,未必定義在函數體里的「變數」都會分布在棧上,如這里的字元串常量,及static修飾的局部變數,他們都是分布在全局靜態區,由編譯器在編譯時決定,而非函數運行時動態分配。另外全局靜態區的變數生命期與整個進程的生命期相同,大於等於函數的生命期。

㈧ 請問在c語言中,怎樣利用指針來比較多個字元串的大小

每個字元串用一個指針指向首地址 再設置一個計數器
在尾地址前指針移動計數器就加1
最後可以通過比價計數器的大小來比較字元串長度