1樓:大聖穿花衣
strcmp是連線兩個字串的函式嗎?明顯不是:
strcmp(比較字串)
相關函式 bcmp,memcmp,strcasecmp,strncasecmp,strcoll
表頭檔案 #include
定義函式 int strcmp(const char *s1,const char *s2);
函式說明 strcmp()用來比較引數s1和s2字串。字串大小的比較是以ascii 碼表上的順序來決定,此順序亦為字元的值。strcmp()首先將s1第乙個字元值減去s2第乙個字元值,若差值為0則再繼續比較下個字元,若差值不為0則將差值返回。
例如字串"ac"和"ba"比較則會返回字元"a"(65)和'b'(98)的差值(-33)。
返回值 若引數s1和s2字串相同則返回0。s1若大於s2則返回大於0的值。s1若小於s2則返回小於0 的值。
範例 #includemain()
執行 strcmp(a,b) : 32strcmp(a,c) :-31strcmp(a,d) : 0
而strcat是連線兩個字串的函式:
strcat(連線兩字串)
相關函式 bcopy,memccpy,memcpy,strcpy,strncpy
表頭檔案 #include
定義函式 char *strcat (char *dest,const char *src);
函式說明 strcat()會將引數src字串拷貝到引數dest所指的字串尾。第乙個引數dest要有足夠的空間來容納要拷貝的字串。
返回值 返回引數dest的字串起始位址
範例 #include main()
執行 before strcat () : string(1)after strcat () : string(1)string(2)
2樓:匿名使用者
不用了strcat把原字串新增到目的字串結尾處(覆蓋dest結尾處的'\0')並新增'\0'。
3樓:匿名使用者
strcat函式自動實現,不需要再手動加'\0'。
4樓:青冥戀雪
如果用陣列來表示字串的話,要人為的加"\0"
c語言問題:不用strcmp函式比較兩個字串的大小
5樓:問明
#include
#define n 80
void cmp(char a[n],char b[n])int i=0;
char *p1=a,*p2=b;
while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0')
i++;
if(*(p1+i)>*(p2+i))
printf("%s>%s\n",p1,p2);
else if(*(p1+i)<*(p2+i))printf("%s<%s\n",p1,p2);
else
printf("%s=%s\n",p1,p2);
int main()
char a[n]=,b[n]=;
char c[n]=,d[n]=;
char e[n]=,f[n]=;
cmp(a,b);
cmp(c,d);
cmp(e,f);
return 0;
執行效果:
6樓:匿名使用者
#include
int main()}
c語言兩個字串比較大小的問題,不使用strcmp函式
7樓:問明
#include
#define n 80
void cmp(char a[n],char b[n])int i=0;
char *p1=a,*p2=b;
while(*(p1+i)==*(p2+i)&&*(p1+i)!='\0')
i++;
if(*(p1+i)>*(p2+i))
printf("%s>%s\n",p1,p2);
else if(*(p1+i)<*(p2+i))printf("%s<%s\n",p1,p2);
else
printf("%s=%s\n",p1,p2);
int main()
char a[n]=,b[n]=;
char c[n]=,d[n]=;
char e[n]=,f[n]=;
cmp(a,b);
cmp(c,d);
cmp(e,f);
return 0;
執行效果:
8樓:
看了也試了、沒什麼問題
不過不用加標頭檔案string.h
while((str1[i]==str2[i])&&(str1[i]!='\0')) i++;
這是說兩個字串從首位字元開始比較、如果相比較的兩個字元相等且第乙個字串沒有到結尾、那麼要比較的字元各向後移動一位、str1[i]!='\0'是判斷字串結束的、當不滿足條件時就會繼續向下執行
s=0;
else
s=str1[i]-str2[i];
如果是由於第乙個字串結束而跳出上面的迴圈、判斷第二個字串是否也結束了、
也就是判斷下是不是兩個字串同時結束、如果是、s=0、不是、s為兩個字元相差的ascii碼
c語言中用scanf函式輸入字串後用strcmp函式比較,出現的小問題,求解
9樓:匿名使用者
那個抄,字串是襲
有結尾符的啊
bai。長du度應該
zhi宣告為3.
int main()
10樓:匿名使用者
字元陣列不能用這bai樣du
的方式賦值,(b="ab")並且字元數zhi組的長dao度版要比,實際長度+1,因為系統會在數權組內部自動加乙個'\0'作為字串的結束標誌,它佔乙個空間,
你如進行賦值的話用
可以用gets和scanf函式。
c語言編寫乙個程式,判別兩字串str1和str2的大小。要求不使用庫函式strcmp.
11樓:匿名使用者
實際上這個題目就是要手動實現strcmp這個函式的功能,在面試中可能會遇到類似的問題(strcpy等)
#include
// 當s1 > s2 的時候,會返回正數// 當s1 < s2 的時候,會返回負數// 當s1 == s2 的時候,會返回 0int mystrcmp(char *s1, char *s2)return *s1 - *s2;
}// 給了乙個測試例子~可以自己寫幾個例子測試一下。
int main()
C語言程式設計strcmp函式的問題
strcmp 函式原型是 int strcmp const char s1,const char s2 如果s1的字串在機器編碼順序中落後於s2,函式返回值是乙個大於0的整數 如果兩個字串相同的話,返回值是0 如果第乙個字串在機器編碼順序中先於第二個字串,返回值是乙個 0的數。看函式的返回值型別是 ...
c語言中函式指標用法,C語言中函式指標用法
函式在記憶體中有一個物理位置,而這個位置是可以賦給一個指標的。一零點函式的地址就是該函式的入口點。因此,函式指標可被用來呼叫一個函式。函式的地址是用不帶任何括號或引數的函式名來得到的。這很類似於陣列地址的得到方法,即,在只有陣列名而無下標是就得到陣列地址。怎樣說明一個函式指標變數呢 為了說明一個變數...
c語言中輸出函式有哪些,C語言中,輸出函式有哪些?
美麗羊光 c語言輸入輸出函式有很多,標準i o函式中包含了如下幾個常用的函式 scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.int scanf const char f...