首页 > 其他分享 >scanf读取String和char []的区别

scanf读取String和char []的区别

时间:2023-10-20 10:55:10浏览次数:33  
标签:读取 scanf char String string cout

 

首先,c语言中没有string类型,直接用scanf读入string类型是不正确的。如:

string a;

scanf("%s",a);    // 录入"asd"

cout << a;    // 输出后a是空

正确方式:

string a;

a.resize(8);

scanf("%s",&a[0]);  // 录入"asd"

cout << a;      // 输出:asd

 

为什么cin能直接读取String而scanf()不能?因为scanf是标准输入流,没有缓存区,需要预先分配空间,而cin是输入流,它使用了缓冲区。如果要使用scanf读入字符串,那就一定要事先为它申请足够的内存空间

 

scanf()读取String和char[]的使用区别:

string a;

a.resize(8);

char b[8];

scanf("%s",&str[0]);

scanf("%s",b);

 

标签:读取,scanf,char,String,string,cout
From: https://www.cnblogs.com/jinziguang/p/17776527.html

相关文章

  • MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%?
    MySQL字段的字符类型该如何选择?千万数据下varchar和char性能竟然相差30%?前言上篇文章MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%......
  • Educational Codeforces Round 149 (Rated for Div. 2) C. Best Binary String
    给一个字符串\(s\)包含\(0,1,?\)。定义一个\(01\)串\(s\)的\(cost\)为:选择\(s\)的任意一个子段\([l,r]\)并\(reverse\)。将\(s\)变为一个非降序序列时的\(reverse\)最小次数即\(cost\)。你可以让\(s\)的\(?\)换成\(0/1\),使新\(s\)的\(cost\)......
  • 编码的奥秘pdf电子版 Charles Petzold
    编码的奥秘pdf电子版CharlesPetzold作者:CharlesPetzold原作名:Code:TheHiddenLanguageofComputerHardwareandSoftwareISBN:9787111080787连接提取码:fpcn类似微机原理的书,讲的很透......
  • C# 中的字符串内插 $对比string.Format
    原文:https://blog.csdn.net/HeBizhi1997/article/details/123544524C#10.0对字符串插值做了点提升,支持开发人员对字符串进行花式内插。附官方教程:https://docs.microsoft.com/zh-cn/dotnet/csharp/tutorials/string-interpolation#code-try-0icon-default.png?t=M2......
  • [题解]CF1881G Anya and the Mysterious String
    思路发现如果一个字符串中有长度大于等于\(2\)回文子串,必定有长度为\(2\)的回文子串或长度为\(3\)的回文子串,并且形如:aa和aba。所以考虑用线段树这两种情况。维护一段区间的最左、次左、最右、次右的元素,同时用两个标记变量\(f_1,f_2\)分别表示这个区间中是否出现形如......
  • 编码: 隐匿在计算机软硬件背后的语言pdf电子版 Charles Petzold
    编码:隐匿在计算机软硬件背后的语言pdf电子版作者:CharlesPetzold原作名:Code:TheHiddenLanguageofComputerHardwareandSoftware出版年:2012-10-1ISBN:9787121181184链接提取码:nqn1从二进制的引入到第一个门电路的搭建,到汇编语言的由来,到操作系统,再到高级语......
  • echarts dataZoom 文本显示不完整
    显示不完整是这样的预期结果是这样的代码dataZoom:[{show:true,xAxisIndex:[0,1],type:"slider",top:"72%",//文本换行是在这里处理//this.chartData.xdata[value]的格式是这样的"2022-02-2300:00:00"所以做如下处理labelFormatter:(value......
  • delphi 判断字符串里的char是单字节还是双字节的前一位或后一位。
    function  ByteType(const  S:  string;  Index:  Integer):  TMbcsByteType;  // 判断一个字符串中,某个 Char 是单个字母,还是双字节的前一位或后一位。  // mbSingleByte单字母  // mbLeadByte  双字节第一位  // mbTrailByte ......
  • 对Date的扩展,将 Date 转化为指定格式的String
    //对Date的扩展,将Date转化为指定格式的String//月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q)可以用1-2个占位符,//年(y)可以用1-4个占位符,毫秒(S)只能用1个占位符(是1-3位的数字)//例子://(newDate()).Format("yyyy-MM-ddhh:mm:ss.S")==>2006-07-0208:0......
  • 解决Matlab遇到的svmtrain (line 234) Y must be a vector or a character array.
    解决Matlab遇到的svmtrain(line234)Ymustbeavectororacharacterarray.在使用MATLAB进行SVM分类器训练时,有时会出现以下错误提示:svmtrain(line234)Ymustbeavectororacharacterarray.这个错误是由于目标变量Y的类型不正确导致的。本文将介绍如何解决这个问题......