zoukankan      html  css  js  c++  java
  • strcpy() strcat() strcmp() gets() puts()

    strcpy函数  
    原型声明:extern char *strcpy(char* dest, const char *src);
    头文件:#include <string.h>
    功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
    说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    返回指向dest的指针

    strcmp

    原型:extern int strcmp(const char *s1,const char * s2);
    所在头文件:string.h
    功能:比较字符串s1和s2。
    一般形式:strcmp(字符串1,字符串2)
    说明:
    当s1<s2时,返回值<0
    当s1==s2时,返回值=0
    当s1>s2时,返回值>0
    即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
    "A"<"B" "a">"A" "computer">"compare"
    特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。

    strcat

    原型

    extern char *strcat(char *dest,char *src);

    用法

    #include <string.h>
    在C++中,则存在于<cstring>头文件中。

    功能

    把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

    说明

    src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
    返回指向dest的指针

    sprintf

    函数功能

    把格式化的数据写入某个字符串缓冲区。

    头文件

    函数原型

    int sprintf( char *buffer, const char *format, [ argument] … );

    参数列表

    buffer:char型指针,指向将要写入的字符串的缓冲区。
    format:格式化字符串。
    [argument]...:可选参数,可以是任何类型的数据。
    返回值:字符串长度(strlen)

    gets

    C:
    #include "stdio.h" //这个头文件包含gets()函数
    int main(void)
    {
    char str1[5];
    gets(str1);
    printf("%s\n", str1);
    return 0;
    }
    C++:
    #include<iostream>
    using namespace std;
    int main()
    {
    char str[100];
    gets(str);
    cout<<str<<endl;
    return 0;
    }
    gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为:
    gets(s);
    其中s为字符串变量(字符串数组名或字符串指针)。
    gets(s)函数与scanf("%s",s)相似,但不完全相同,使用scanf("%s",s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。
    说明:
    gets(s) 函数中的变量s为一字符串或字符指针。如果为单个字符,编译连接不会有错误,但运行后会出现”Null pointer asignment"的错误。
    【8】宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws();

    puts

    puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。
    功 能: 送一字符串到流stdout中
    用 法: int puts(char *string);
    程序例:
    #include <stdio.h>
    int main(void)
    {
    char string[] = "This is an example output string\n";
    puts(string);
    return 0;
    }
    初学者要注意以下例子
    #include <stdio.h>
    #include <conio.h>
    int main(void)
    {
    int i;
    char string[20];
    for(i=0;i<10;i++)
    string[i]='a';
    puts(string);
    getch();
    return 0;
    }
    从此例中可看到puts输出字符串时要遇到'\0’也就是字符结束符才停止。如上面的程序加上一句 string[10]='\0';
    #include <stdio.h>
    #include <conio.h>
    int main(void)
    {
    int i;
    char string[20];
    for(i=0;i<10;i++)
    string[i]='a';
    string[10]='\0';
    puts(string);
    getch();
    return 0;
    }
    运行就正确了
    说明:
    puts 和 printf 的用法一样,puts()函数的作用与语句“printf("%s\n",s);的作用相同。注意:puts在输出字符串后回车符。
    puts()函数只能输出字符串,不能数值或进行格式变换。
    可以将字符串直接写入puts()函数中,输出至屏幕。如:puts("Hello,Turo C2.0:");
    puts()函数的一种实现方案如下:
    int puts(const char * string)
      {
      const char * t = string;
      const char * v = string;
      int i = 0;
      while(*t!='\0')
      {
      i++;
      t++;
      }
      int j = 0;
      for(j;j<=i;j++)
      putchar((v[j]));
      putchar('\n');
    return 0;
      }
  • 相关阅读:
    关于用户体验的几张图片
    上下翻滚JS特效代码
    关注程序员健康之——缺失营养时的六种信号
    C#基础知识系列之——for循环
    关于程序中的需求的变化,责任的分配
    Silverlight学习之——Canvas对象
    还是觉得应该动手写点东西....
    怎样理解“道不同,不相为谋”这句话呢。。。
    UML图中最基本的是类图
    .NET中各种数据库连接大全
  • 原文地址:https://www.cnblogs.com/byxzbg/p/3128037.html
Copyright © 2011-2022 走看看