黑马程序员技术交流社区

标题: 我想比较两个字符串的大小,不知道怎么弄。 [打印本页]

作者: 喵喵    时间: 2014-7-11 11:33
标题: 我想比较两个字符串的大小,不知道怎么弄。
本帖最后由 喵喵 于 2014-7-17 16:37 编辑

我想比较两个字符串的大小,不知道怎么弄。
作者: 喵喵    时间: 2014-7-11 11:35
练习题目是给字符串排序,我只会给数组排序,字符串不会呀。接收字符串我用的是scanf(),但是字符串不能加空格。有没有什么别的办法
作者: 追马    时间: 2014-7-11 11:48
你看一下把。这个程序就是给多个字符串排序的。
比较字符串大小用 strcmp()
从键盘获取字符串用gets()要比sanf()好。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main(){
  4.     //定义一个二维数组,存储字符串。
  5.         char str[10][100];
  6.     //定义一个临时字符串.
  7.         char temp[100];
  8.     //从键盘获得10个数组。
  9.         for(int i = 0;i < 10;i++){
  10.                 printf("请输入字符串%d:",i+1);
  11.                 gets(str[i]);
  12.         }
  13.   
  14.     //利用第一维排序。
  15.         for(int i = 0;i < 10;i++){
  16.                   for(int j = i + 1;j < 10;j++){
  17.             //利用函数strcmp()判断字符串大小。
  18.                            if(strcmp(str[i],str[j])>0){
  19.                 //利用函数strcpy来交换字符串
  20.                 strcpy(temp,str[i]);
  21.                 strcpy(str[i],str[j]);
  22.                 strcpy(str[j],temp);
  23.             }
  24.                   }
  25.         }
  26.    
  27.         for(int i = 0;i<10;i++){
  28.                 printf("%s\n",str[i]);
  29.         }
  30.    
  31.     return 0;
  32. }
复制代码

作者: 且行且惜    时间: 2014-7-11 12:05
scanf()接收到空格或者回车,就会结束!  gets()接收字符串是回车结束的!!上面那个同学,说的也很清楚
作者: 诸葛佰通    时间: 2014-7-11 12:19
去下一个C语言的库函数说明文档。你这个情况是因为对C的自带库函数了解不够深刻。看我的发帖,有一个CLib的CHM文件,你去下过来对你学习有帮助的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2