C++中的字符数组逐个赋值时报错的解决方法

C++中的字符数组逐个赋值时报错的解决方法

C++中定义一个字符数组的时候,如果初始化,则cout的时候不会出错,但是在逐个字符赋值的时候,很容易出错。

#include<iostream>
#include<string>
using namespace std; 

int main()
{
	//char s[100] = "china";
	char s[100];
	s[0]='c';
	s[1]='n';
	s[2]='\0';
	cout<<s<<endl; 

	return 0;
}

如果我们直接初始化:

如果我们逐个字符的赋值:

这是为什么呢?

原来是在逐个字符赋值的时候,一定要记住最后来个s[len-1]=‘\0‘; 这个是字符串的结束标志!!

改正的输出如下:

时间: 2024-12-22 00:22:46

C++中的字符数组逐个赋值时报错的解决方法的相关文章

【第一个项目】MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago 最近碰到一个mysql5

新安装的soapui启动时报错及解决方法

今天新安装了soapui准备测试一下接口,结果安装成功后启动时报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large 意思就是:Java虚拟机无法启动.Xmx可能太大 这时就需要将这个参数的值改小一点. 经过排查这个参数在soapui安装目录\bin\目录下的vmoptions配置文件中 将原来的值改为800,保存后启动成功

sql server 作业导出放到另外一台机器执行时报错的解决方法

SQL Server2008脚本创建作业失败,提示: 引用内容消息 515,级别 16,状态 2,过程 sp_add_job,第 137 行不能将值 NULL 插入列 'owner_sid',表 'msdb.dbo.sysjobs':列不允许有 Null 值.Insert 失败.语句已终止. 解决方法 在创建作业的脚本中查找@owner_login_name,会找到类似语句: 复制内容到剪贴板 程序代码@owner_login_name=N'WIN-V8UR550191J\Administrat

在Android Studio中打开Android Device Monitor时报错的解决方法

在Android Studio中打开Android Device Monitor时报以下错误时(Android-SDK\tools\lib\monitor-x86_64\configuration\1491536029820.log),请关闭Android Studio后以管理员的模式打开Android Studio后即可解决此问题. !SESSION 2017-04-07 11:33:49.545 -----------------------------------------------

RequiredFieldValidator控件验证不能为空时报错多种解决方法以及问题分析

最近在学asp.net,在使用RequiredFieldValidator控件进行验证时,发现报错,界面控件如下图: 点击完确定之后按理来说是要报不能为空的提示的但是却报错如下图: 经过一番研究发现,也看了其他人的解决方案,总结如下: .net 4.5 ~(vs2012~)控件默认都Enable了 ,Unobtrusive ValidationMode的属性(和jquery的引用相关),但并未对其进行赋值, 必须手动对其进行设置.在进行数据验证时使用的各种validator需要在前端调用jque

pthread编译时报错的解决方法

最近在学习POSIX thread编程,今天编译一个程序报如下错误: /tmp/ccXH8mJy.o:在函数‘main’中:deadlock.c:(.text+0xbb):对‘pthread_create’未定义的引用deadlock.c:(.text+0x134):对‘pthread_join’未定义的引用 郁闷,百度了一下,发现在gcc编译的使用应该加上 -pthread 选项 (注意不是 -lpthread) 重新编译,顺利通过,特此纪念

使用drozer.bat console connect 时报错的解决方法

1.首先在真实机或者模拟器中启动drozer agent: 2.端口转发:adb forward tcp:31415 tcp:31415; 3.启动drozer:drozer console connect: eg:使用命令:drozer.bat console connect 启动drozer时候提示:Could not find java. Please ensure that it is installed and on your path: 解决办法如下:建立名为 .drozer_con

VS2012 Nuget 安装 AutoMapper时报错的解决方法

VS2012 在.net 4.0下安装AutoMapper时,会报以下错误: "AutoMapper"已拥有为"Standard.Library"定义的依赖项. 'AutoMapper' already has a dependency defined for 'Standard.Library'. 经查应该是Nuget版本(VS2012的2.83版本)较低引起的,不支持Standard.Library框架. 解决方法有两个: 方式一NuGet 2.12支持Auto

Oracle使用sys登录时报错ORA-28009解决方法

情况一:使用sqlplus登录: 正常输入用户名的口令,就会报错,因为SYS是在数据库之外的超级管理员,所以我们在登录的时候 要在输入口令:口令+as sysdba(比如:123456 as sysdba) 情况二:使用PL/SQL登录: 这是我们平时的登录数据库很常规的操作,但是用SYS作为用户名登录的时候就会报 ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER这样的错 解决方法是: 将“连接为”选项框的Normal改为SYS