在g++编译器中使用strlen获取数组的长度

2023-12-08

有人可以解释为什么当我使用以下 g++ 编译器编译源代码时出现此错误

#include <cstdio>
#include <string>

using namespace std;

int main()
{
    char source_language[50];


    scanf("%16s\n",source_language);

    int length = sizeof(source_language);
    int sizeofchar = strlen(source_language);
    printf("%d\n",sizeofchar);
}

这给了我以下错误

test.cpp:在函数‘int main()’中:

test.cpp:31:错误:“strlen”未在此范围内声明

当我改变#include <string> into #include <string.h> or #include<cstring>,它工作正常,我需要弄清楚使用有什么区别#include<string> and #include<string.h>。非常感谢任何帮助


您正在尝试使用strlen函数,其声明于string.h(或者,作为命名空间的成员std in cstring)。所以,为了使用strlen您应该包含这两个标头之一。

The #include <string>变体不起作用只是因为string是一个完全不相关的 C++ 特定头文件,它绝对具有nothing与 C 标准库字符串函数有关。是什么让您期望它会起作用?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在g++编译器中使用strlen获取数组的长度 的相关文章

  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 如何在 Swift 2.0 中使用 stringByAddingPercentEncodingWithAllowedCharacters() 作为 URL

    我在 Swift 1 2 中使用过这个 let urlwithPercentEscapes myurlstring stringByAddingPercentEscapesUsingEncoding NSUTF8StringEncoding
  • 重载<<的返回值

    include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • JIT编译和DEP

    我正在考虑尝试一些 jit 编译 只是为了学习 并且让它跨平台工作会很好 因为我在家运行所有主要的三个 windows os x linux 考虑到这一点 我想知道是否有任何方法可以摆脱使用虚拟内存窗口函数来分配具有执行权限的内存 如果只使
  • 关于静态持有者单例模式

    我根据挥发性 惰性单例 急切单例 普通单例以及通过枚举等条件以多种方式开发了单例 但具体来说我想了解如下所示的静态持有者模式单例 public static class Singleton private static class Inst
  • QML TableView 使用 QtQuick.Controls 2 单击行

    我在网上搜索了很多 但没有找到答案 这真的很奇怪 因为我认为这是大多数人应该使用的基本功能 可能我不明白如何正确使用表格视图 with QtQuick Controls 2 问题是 我想知道我单击了哪一行 并且我想访问该行的特定列的数据 类
  • Gmail 应用程序中的表格间隙未跨越整个宽度和高度

    经过几天的尝试寻找解决方案 未成功 我决定向社区的集体智慧和经验寻求帮助 我 我有一个电子邮件模板 可以在所有桌面 网络和移动客户端 Android 版 Gmail 应用程序除外 上正确显示 我有一个嵌套的导航表 由顶部图像 导航本身和底部
  • 如何在 pandas 中将多列折叠为一列

    我有一个填充了用户和类别的 pandas 数据框 但这些类别有多个列 user category val1 val2 val3 user 1 c1 3 NA None user 1 c2 NA 4 None user 1 c3 NA NA
  • 正则表达式仅匹配最里面的分隔序列

    我有一个包含由多个字符分隔的序列的字符串 lt lt and gt gt 我需要一个正则表达式来只给我最里面的序列 我已经尝试过前瞻 但它们似乎没有按照我期望的方式工作 这是一个测试字符串 do not match this lt
  • SSRS 2012 图表未渲染 [关闭]

    Closed 这个问题是无关 目前不接受答案 我们最近升级到 SQL Server 2012 几天前重新启动后 所有图表都停止工作 当我尝试从报告查看器控件中查看各种报告中的所有图表时 它们现在都显示为损坏的图像 左上角有一个红色 x 这种
  • 如何将元组的值转发到成员初始值设定项?

    我需要将元组的值转发到成员初始值设定项 struct Struct Member1 member1 Member2 member2 template
  • 如何在 Openshift 中使用简单的 npm-install?

    我正在尝试在我的 openshift 帐户上使用可爱文件 https www npmjs com package cute files 我知道 node js 的工作方式与我在 localhost 3000 中所做的一样 但不是那么专家 我
  • C中unsigned和unsigned int的区别

    您能说清楚两者之间的区别吗unsigned and unsigned int 也许一些示例代码会有所帮助 unsigned是一个修饰符 可以应用于任何整型 char short int long等 但就其本身而言 它与unsigned in
  • int64_t 的定义

    我是 C C 新手 所以我有几个关于基本类型的问题 a 你能向我解释一下两者之间的区别吗int64 t and long long int 根据我的理解 两者都是 64 位整数 有什么理由选择其中之一而不是其他吗 b 我试图查找定义int6
  • Spring AOP引入中原有接口丢失

    这是我的 Spring AOP 配置
  • 在 R 中绘图时图例消失

    我绘制了五个图表和一个图例 这些图表工作得很好 但是图例消失了而没有错误 我在 RStudio 中的预览如下所示 当我放大时 图例所在的区域是空白的 我使用以下代码 opar lt par no readonly TRUE par mfro
  • \377\376 附加到文件(Windows -> Unix)

    我有一个SSIS执行以下操作的包 运行 SQL 脚本 将结果导出到平面文件 UTF 8编码 分隔 并且 n对于新线路 FTP 结果到Solaris机器 二进制格式 问题是 当文件出现在我的 Solaris 机器上时 文件开头有以下内容 37
  • 如何动态创建局部变量?

    我有一个变量var some name 我想创建一个新对象并将其分配给some name 我该怎么做 例如 var some name some name Struct new name I need this a some name ne
  • oracle中使用seq和trigger自动增量-无效的sql语句

    我是 Oracle 的新手 来自 MySQL 我试图使用序列和触发器在 Oracle 中使用自动增量 以便每次插入时它都会将我的字段增加一 CREATE SEQUENCE proposals seq MINVALUE 1 START WIT
  • 如何打开多个窗口或操作多个实例

    如果出于某种疯狂的原因 我需要打开 100 个窗口 选项卡并导航到其中的 100 个不同的链接 我该怎么做 我可以同时在所有 100 个测试中运行某些测试吗 假设我有一个数组 a b c d e 我需要测试某种形式是否适用于所有这些值 我怎
  • QQuickWidget抓取图像

    我正在保存一个图像QQuickWidget有几个 QML 孩子 但我只有一张空白图像 C 方面 QQuickWidget content content gt setSource QUrl qml main qml QPixmap pm c
  • Sequential Guid 主键列应该是聚集索引吗?

    使用顺序 guid 的目标是 您可以使用聚集索引 而不会产生高级别碎片 如果它是常规 guid 那么聚集索引中通常会存在这种情况 对吗 首先澄清一下 主键和聚集索引是两个独立且不同的东西 即一个不与另一个耦合 PK 可以是非聚集的 聚集索引
  • 在g++编译器中使用strlen获取数组的长度

    有人可以解释为什么当我使用以下 g 编译器编译源代码时出现此错误 include