C语言_0315笔记_字符串函数:putchar输出putchar(ch)/getchar获取ch = getchar()/strlen输出字符串长度 不读‘\0’

10.2.1 单字符的输入输出

putchar

//放字符 放到标准输出里面“那个黑黑的窗口里面”

  • int putchar(int c);

  • 输出的不是char类型而是int类型,但是不能接收4字符

  • 向标准输出写一个字符(在标准输出里输出一个字符)

  • 返回类型也是int,返回写了几个字符,EOF(-1)表示写失败,返回1为正常(正常情况下不需要去检查putchar的返回)

getchar

//读入字符

  • int getchar(void);

  • 从标准输入读入一个字符

  • 返回其读到的字符。返回类型也是int,这是为了返回EOF(-1),来表示输入结束。

例子:

#include<stdio.h>
int main(int argc,char const *argv[])
{
    int ch;
    
    while((ch = getchar()) != EOF)
    {
        putchar(ch);
    }
 
    printf("EOF\n");
    return 0;
}
  • 输入Crtl+C时,没有输出CtrlC,也没有输出EOF,说明是强制退出

  • 输入Ctrl+D( (Mac上是CtrlD,而Windows是Ctr lZ)时入输出EOF,说明此时输入结束

什么时候为止?回车

既然getchar只读一个字符,我们输入一个字符之后它并没有自动终止读入,而是在用户按下回车之后才终止。

shell的工作原理

  • 在我们的程序和我们输入与屏幕之间有shell代为处理数据,用户输入之后,shell会将输入的内容填入缓冲区,然后进行行编辑处理。shell把缓冲区里的东西输进程序。

  • 输入的数据会在不同程序下对其进行不同的处理。

  • CtrlC会让shell直接关闭程序

  • CtrlD在shell收到后,在末尾填一个-1,程序读到-1,程序就正常结束了。

  • 遇到\0,则等待用户继续输入,因此程序并不会停止读入。

10.2.2 strlen函数

标准库string.h

使用字符串函数的时候,需要加上头文件

#include<string.h>

strlen

//告诉你字符串的长度

  • size_t strlen (const char *s) //用const保护字符串

  • 可以返回s的字符串长度(不算结尾的0,sizeof会计算0)。

  • 里边的const表示这不会对字符串进行任何更改。

例子:

#include<stdio.h>//输入输出头文件
#include<string.h>//要使用字符串函数 加的头文件
 
int main(int argc,char const *argv[])//main的标准定义
{
    char a[] = "Hello";
    printf("strlen = %lu\n",strlen(a));//5
    printf("sizeof = %lu\n",sizeof(a));//6  还读到了反斜杠0(结尾)
    
    return 0;
}

自己写 代替它的功能?

#include<stdio.h>
#include<string.h>
 
//遍历数组,当数组元素为0时表示结束,用下标代替元素个数,得到字符串长度
size_t mylen(const char* s)//size_t啥意思 int可以理解
{
    int index = 0;
    while(s[index] != '\0')
    {    
        index++;
    }
    return index;
}

size_t

  • size_t中的t是type(类型)的意思。

  • size_t的意思是size of type,即某种类型的大小(字节数)。

  • size_t是C内部预定义的一个类型:typedef unsigned int size_t

  • 因此这句代码相当于:unsigned int size=sizeof(long long);

  • sizeof()函数的功能就是求变量在内存中所占的字节数。

  • 因此,这句话的意思是将long long类型在内存中所占的字节数赋值给无符号整型变量size。

猜你喜欢

转载自blog.csdn.net/Shmily_as33/article/details/129547352