当前位置:   article > 正文

字符串比较(指针与字符)_qt中 char比较值

qt中 char比较值

题目描述

编写一个函数比较两个字符串,参数是两个字符指针(要求显式定义,例如char *S, char *T),比较字符串S和T的大小。如果S大于T,则返回1,如果S小于T则返回-1,如果S与T相等则返回0。

比较规则:

1.把两个字符串的相同位置上的字符进行比较,字符的大小比较以ASCII值为准

2.在比较中,如果字符串S的字符大于字符串T的字符的数量超过小于的数量,则认为S大于T,如果等于则S等于T,如果小于则S小于T

例如S为aaccdd,T为eebbbb,每个位置比较得到S前两个字母都小于T,但后4个字母都大于T,最终认为S大于T

3.如果两个字符串长度不同,则更长的字符串为大

在主函数中输入两个字符串,并调用该函数进行判断,在判断函数中必须使用函数参数的指针进行字符比较

输入

输入t表示有t个测试实例

接着每两行输入两个字符串,字符串的最大长度不超过20

依次输入t个实例

输出

每行输出一个实例的比较结果

输入样例1

  1. 2
  2. aaaaaaa
  3. zznnkk
  4. eebbbb
  5. aaccdd

输出样例1

1
0
-1
 

输入样例2

  1. 2
  2. aaaaaaa
  3. zznnkk
  4. eebbbb
  5. aaccdd

 输出样例2

1
-1

  1. #include <iostream>
  2. using namespace std;
  3. int compare(char* s, char* t)
  4. {
  5. int l1 = strlen(s);
  6. int l2 = strlen(t);
  7. if (l1 > l2)
  8. return 1;
  9. else if (l1 < l2)
  10. return -1;
  11. else
  12. {
  13. int count = 0;
  14. for (int i = 0; i < l1; i++)
  15. {
  16. if (*(s + i) > *(t + i))
  17. count++;
  18. else if (*(s + i) < *(t + i))
  19. count--;
  20. }
  21. if (count == 0)
  22. return 0;
  23. else if (count > 0)
  24. return 1;
  25. else
  26. return -1;
  27. }
  28. }
  29. int main()
  30. {
  31. int t;
  32. cin >> t;
  33. while (t--)
  34. {
  35. char* s = new char[20];
  36. char* t = new char[20];
  37. cin >> s >> t;
  38. cout << compare(s, t) << endl;
  39. delete[]s;
  40. delete[]t;
  41. }
  42. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
  

闽ICP备14008679号