strlen-size_t write(const char *str)

问题描述

size_t write(const char *str)

size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); }
这句代码 中return write((const uint8_t *)str, strlen(str));的含义怎么理解?

解决方案

含义是执行这句:write((const uint8_t *)str, strlen(str));,并返回它的执行结果

解决方案二:

写str的内容,返回它的大小

解决方案三:

前一句是调用一个函数 对字符串做一个处理
至于return 就是写入str的内容 然后返回他的长度

解决方案四:

return write((const uint8_t *)str, strlen(str));
写入str的内容,以uint8格式,同时写入的长度为strlen(str)
然后返回写入后的结果
最为size_t write(const char *str) 的返回值

时间: 2024-08-22 07:25:55

strlen-size_t write(const char *str)的相关文章

char str[] 与 char *str的区别详细解析_C 语言

复制代码 代码如下: char* get_str(void)  {      char str[] = {"abcd"};      return str;  } char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的空间的地址. 此函数返回的是内部一个局部字符数组str的地址,且函数调用完毕后 此数组被销毁,所以你返回的指针也就指向一块被销毁的内存,这种写法是错误的. 复制代码 代码如

char *str 与char str[] 的区别

简述 char *str = "abcd" 先在静态区为"hello"常量分配5Byte,接着在栈里为指针str分配4Byte(32位机器)并指向"abcd"字串的首地址,因此此时str是指向第一个字符'a'的一个指针. char str[ ] = "abcd" 在栈里分配连续的5Byte,内容为'a','b','c','d','\0',并把首地址标记为str,此时str是数组名,同时也是指向数组第一个字符'a'的指针常量.

c语言-编写一个函数,void fun(char *str, char *substr1, char *subtr2 , …)

问题描述 编写一个函数,void fun(char *str, char *substr1, char *subtr2 , -) 编写一个函数,void fun(char *str, char *substr1, char *subtr2 , -)实现将字符串str中的子串substr1替换为子串substr2,并同时统计替换后str字符串长度,要求:接口定义中已有部分不许修改,但允许在-处自由添加参数.替换举例:如将字符串"abcedfrbcxybc"中的字串1"bc&qu

使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法_C 语言

代码如下所示: 复制代码 代码如下: // 递归实现字符串反转   char *reverse(char *str)   {    if( !str )    {     return NULL; }       int len = strlen(str);       if( len > 1 )       {           char ctemp =str[0];           str[0] = str[len-1];              str[len-1] = '/0';

关于char**与const char**

   const char**a; char *b[] = {0}; a = b; 对于上面这段代码,GCC编译器会在"a=b"一句上报告警告,提示不匹配的指针类型. 感觉非常奇怪,非const向const赋值,居然都报错?在网络上搜索相关问题,得到的信息大致如下: 在ANSI C标准中有这么一句话: 什么是合法的赋值形式呢?两个操作数都是指向有限定符或者无限定符的相容的指针,左边指针所指向的类型必须具有右边指针指向类型的全部限定符. 于是,对于语句: char *test1; con

const char*和const char[]怎么识别?

#include <iostream> using namespace std; template<typename T> class _ischararray_; template<typename T, int N> class _ischararray_<T[N]> { public: static bool _ischararray(){return true;} }; template<typename T> class _ischar

const char*, char const*, char*const的区别

const char*, char const*, char*const的区别问题几乎是C++面试中每次都会有的题目. 这个知识易混点之前是看过了,今天做Linux上写GTK程序时又出现个Warning,发散一下又想到这个问题,于是翻起来重嚼一下. 事实上这个概念谁都有只是三种声明方式非常相似: Bjarne在他的The C++ Programming Language里面给出过一个助记的方法: 把一个声明从右向左读. char * const cp; // * 读成 pointer to //

const char*

关于const char*的例子 #include<stdio.h> int main() { const char *p = "123"; p[1] = '3'; //会报错 p = "456"; //不会报错 printf("%s\n",p); return 0; } "123"是常量,放在代码区,不可修改,所以需要加上const char *,这样编译的时候,如果直接p[1] = 1,编译器就知道你给cons

运算符重载-没有找到接受“const char [2]”类型的右操作数的运算符(或没有可接受的转换)

问题描述 没有找到接受"const char [2]"类型的右操作数的运算符(或没有可接受的转换) #include using namespace std; class Time { private: int hour; int minute; int second; public: Time(int h=0,int m=0, int s=0):hour(h),minute(m),second(s){} Time operator+(Time x) { Time z; z.hour=