找最小的字符串

找最小的字符串_第1张图片

 找最小的字符串_第2张图片

   要想完成这个程序,我们就要知道字符串的大小是怎么比较的。如果要比较字符串的大小,就要借助字符串比较函数strcmp(s1,s2)。因为字符串比较函数是一个库函数,所以我们要在main函数的前面包含string.h的头文件。

   那字符串比较函数strcmp(s1,s2)怎么用呢?容我慢慢道来。首先函数strcmp()中的参数s1和s2可以是字符数组名又可以是字符串常量。函数strcmp()返回一个整数,给出字符串s1和s2的比较结果:

  • 若s1和s2相等,返回0。
  • 若s1大于s2,返回一个正数。
  • 若s1小于s2,返回一个负数。

   假设str1和str2都是字符数组,在C语言中,str1==str2、str1>=str2和str1<=str2比较的是两个字符数组的首元素地址。而strcmp(str1,str2)==0、strcmp(str1,str2)>=0和strcmp(str1,str2)<=0比较两个字符串的内容。

   字符串的比较规则是:从两个字符串的首字符开始,依次比较相对应的字符(比较字符的ASCII码),知道出现不同的字符串或遇到'\0'为止。如果所有的字符都相等,返回0;否则,以第一个不相同字符的比较结果为准,返回这两个字符的差,即第一个字符串的字符减去第二个字符串的字符得到的差。例如:

  • strcmp("love","love")的值等于0,说明"love"和"love"相等。
  • strcmp("compute","compare")的值大于0,因为('u'-'a')是个正数,也就说明"compute"大于"compare"。
  • strcmp("happy","sad")的值小于0,因为('h'-'s')是个负数,也就说明"happy"小于"sad"。
  • strcmp("sea","seat")的值小于0,因为("\0"-"t")是个负数,也就说明"sea"小于"seat"。

一般来说,strcmp()函数的值为1,0和-1。 

 ASCII码表

 找最小的字符串_第3张图片

   讲到这,相信大家已经差不多能够把找最小的字符串的程序写出来了。

   想要把这个程序完成,我们还要借助一个函数,就是字符串函数strcpy(s1,s2)。该函数把字符串s2复制到s1,直到s2中的'\0'为止。同时要注意,s1要有足够的空间容纳s2,且s1中的内容被完全覆盖,函数返回的是s1。与strcmp()函数有所不同的是,strcpy(s1,s2)中的参数s1必须是字符数组名,参数s2可以是字符数组名或字符串常量。例如:

char s1[80],s2[80],from[80]="happy";

strcpy(s1,from);

strcpy(s2,"love");

   第二条语句调用了函数strcpy()把from中的字符复制给s1;第三条语句把字符串"love"复制给s2后,数组s1中存放了"happy",数组s2中存放了"love"。

  现在我们找到了这个程序所需要的两个函数,那么这道题我们就可以轻松地做出来了。

#include 
#include 

int main()
{
  int n;
  scanf("%d\n",&n);  //n为行数
  char str[n][80];   //80列为了字符串不超过80个字符
  char Min[80];
  for(int i=0;i0)  //调用strcmp()函数来判断字符串的大小
    {
      strcpy(Min,str[i]);     //符合条件就改变字符串Min的值
    }
  }
  printf("Min is: %s",Min);
  return 0;
}

   觉得有收获的小伙伴,可以点点小赞支持一下,你们的点赞就是我的最大动力。谢谢!!! 

你可能感兴趣的:(c语言)