C语言函数题-P字符串的比较
生活随笔
收集整理的這篇文章主要介紹了
C语言函数题-P字符串的比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
6-1 P字符串的比較 (5分)
P字符串是另一種字符串實現形式。它也采用char數組來保存字符串中的字符,但是最后一個字符后面沒有結尾的’\0’。它使用另一個int類型的變量來表示字符串中的字符的個數。
本題要求編寫P字符串的比較函數。
函數接口定義:
int pstr_cmp(const char *s1, int len1, const char *s2, int len2);
pstr_cmp比較兩個字符串的大小,如果兩個字符串完全相同,則返回0;否則,返回第一個不相同的字符的差值(s1的那個字符減s2的那個字符的差)。如果兩個字符串的長度不同,但是短的字符串正好是長的字符串的開頭的所有字符,則用長的字符串多余部分的第一個字符的值作為差值。如hell和hellA的差值是-65。
裁判測試程序樣例:
#include <stdio.h>const int SIZE = 80;// 這兩個函數由裁判程序提供 int pstr_scan(char* str, int size); void pstr_print(const char* str, int length);int pstr_cmp(const char *s1, int len1, const char *s2, int len2);int main() {char line[SIZE];char text[SIZE];int len1 = pstr_scan(line, SIZE);int len2 = pstr_scan(text, SIZE);printf("%d\n", pstr_cmp(line, len1, text, len2));return 0; }/* 請在這里填寫答案 */
輸入樣例:
123A 123
輸出樣例:
65
int pstr_cmp(const char *s1, int len1, const char *s2, int len2) {int max = len1;if(len2>max)max = len2;for(int i=0;i<max;i++,s1++,s2++){if(*s1!=*s2){return *s1-*s2;}}return 0; }這題有點奇葩,題目中的函數定義都沒給,只能盲打
總結
以上是生活随笔為你收集整理的C语言函数题-P字符串的比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言简单题-找最大的字符串
- 下一篇: C语言函数题- 删除字符串中下标为i的字