c++中的字符串数组问题

char str[];
str="i love china";
请问这样的语法有问题吗?

3个回答

在定义数组时一般要指明数组长度,如果定义时直接初始化,可以不指定长度,如:
char str[]="i love china";
所以你的写法在语法上是错误的。

qq_27489903
改变明天 谢谢亲
4 年多之前 回复
 char str[100];
str="i love china";

测试一个程序,将多个字符串数组依次遍历,找出待查找的字符串位于那个数组。
定义字符串数组的时候如下定义:

char *str1[]={"hello","world","china","Ich","Liebe"};
char *str2[]={"hehe","......
答案就在这里:字符串数组的问题!
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h> int main() { char *s; printf("s的地址是:%d\n", &s); s = "hello"; char *p = s; ...

c 语言字符串数组排序

#include  #include  using namespace std; int main() {     char buf[100][100];//100个字符数组组成的二维数组。     char t[100];     int i,j;          for(i = 0; i < 100; i ++)         cin>>buf[i];//输入值。     for(i = 

字符串数组初始化相关问题总结

C字符串数组初始化相关问题总结 在C语言编程中,当我们声明一个字符串数组的时候,常常需要把它初始化为空串。总结起来有以下三种方式: (1) char str[10]="";(2) char str[10]={'\0'};(3) char str[10]; str[0]='\0'; 第(1)(2)种方式是将str数组的所有元素都初始化为'\0',而第(3)种方式是只将str数组

C语言利用字符串数组读取字符串的误区

最近碰到一个很奇怪的问题,想想关了电脑也要再开机记录下来主要代码如下:int main() { char* key[2]; scanf("%s", &key[0]); scanf("%s", &key[1]); printf("%s \n", &key[0]); return 0; } 要从控制台中读取输入的字符串,定义了一个char*类

数组 字符串遍历

-----------------C语言中的遍历------------------- ----------------一维数组遍历---------------------- int array[] = {1,2,3,4,5,6,7,8,9}; int count = sizeof(array) / sizeof(int); for (int i = 0; i { int m =

C语言的字符串数组

在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小。第二种没有字符串的大小限制。 #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;string.h&amp;gt; //该程序的功能是 输入阿拉伯数字的月份数 输出英文月份 int main() { //一个字符串...

c语言中如何给字符串数组赋值

c语言中如何给字符串数组赋值 1.问题 这是我写的 struct student { int x; char name[10]; }; void main() { student st; st.name= 这里能不能直接赋值 一个字符串 “123”;? 如果不用scranf() } 2.原因 st.name="123"; 非法,常量字符串不能直接

LeetCode:14. 最长公共前缀

题目 LeetCode: Longest Common Prefix 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 “”。 说明: 所有输入只包含小写字母 a-z 。 示例: 输入: [&quot;flower&quot;,&quot;flow&quot;,&quot;flight&quot;] 输出: &quot;fl&quot; 思路 特殊情况特殊处理,比如不穿字符串还有只有一个字符串的情况 ...

字符数组与字符串数组

C语言中:字符数组与字符串数组的定义字符数组是一个存放字符的数组字符串数组是一个特殊的字符数组,它以’\0’(ASCII 为0)结尾我们不能通过字符数组名知道数组内有多少成员,但可以通过字符串数组名计算数组内的成员数量这里对字符数组(强调:字符串数组是一个特殊的字符数组)计算有一个关键字 sizeof,和一个函数 strlen:sizeof 计算的是字符数组占用空间的大小(这里除以每个成员占用空间

C字符串数组赋值

C字符数组赋值 举例如下: char a[10]; 1、定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如  char a[10];  a[10]="hello"; 这样是错误的! 2、对数组中字符逐个赋值 char a[10]={'h','e','l','l','o'}; 3、利用strcpy char a[10];

C语言系列之C语言如何返回字符串数组

问题出在如此想了一下C语言如何实现返回一个字符串数组,答之:没有这种功能,但是吧,还是有办法实现的。那就是指向数组的指针解释char **p 这个p就是指向数组的指针,它指向一个数组的起始地址. 想要引用里面的数组时,直接使用p[i] 即可。我们知道C语言里面的各种数组,本质上都是指针,并且函数其实也是不能把数组当作参数的,实际上都是把数组的地址传进去了,实际上就是指向数组地址的指针。说了这么多

[C语言]给一个二维字符数组赋值的问题

二维字符数组的赋值

c语言字符串数组的两种表示方法

c语言字符串数组的两种表示方法

C语言字符串和字符数组

如果是字符数组,也可以用一个字符串字面值来初始化:char str[10] = &quot;Hello&quot;;相当于:char str[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };str的后四个元素没有指定,自动初始化为0,即Null字符。 有一种情况需要特别注意,如果用于初始化的字符串字面值比数组刚好长出一个Null字符的长度,比如:char str[14] = &quot;Hell...

JNI C创建Java字符串数组

创建Java字符串数组注:jni中没有与String[]对应的数据类型,所以需要创建对象数组,循环添加jstring对象#include <Sample3.h> #include <string.h> #include <stdlib.h> #define ARRAY_LENGTH 5 JNIEXPORT jobjectArray JNICALL J

字符串动态数组的C实现方法

我们知道C++是支持容器的, 对于各种数据类型都能有很好的支持,但是C不一样, C的数据类型支持真的很差,一旦换一种类型,又得重新编码,比如从int型的动态数组 转到string类型的动态数组,会发现这是件非常痛苦的事情。今天手贱,用C实现一下字符串动态数组的编写。主要目的是: 1. 回顾一下,C中的动态内存分配方法,(主要就是malloc, realloc, free的使用), 按照我们的理解C

C语言字符串和字符串数组的输入赋值

决心使用C语言来做算法题,开头很痛苦。主要是困在了C字符串的输入和赋值。 现总结一下: **1、字符串指针一定要开辟空间后在做输入** char * str;   str=(char *)malloc(100*sizeof(char));   scanf("%s",&str); **2、字符串数组要做初始化的开辟空间后再来存储字符串**   char * strAr

C/C++中求字符串数组的大小---sizeof,strlen,string,length()

#include "iostream" //#include #include //strlen /**是C++标准库头文件,包含了拟容器class std::string的声明(不过class string事实上只是basic_string的typedef),用于字符串操作。 *cstring>是C标准库头文件的C++标准库版本,包含了C风格字符串(NUL即'\0'结尾字符串)相关的一些类型和

给字符数组插入元素

在"****aaaa**"每个*后面添加1 #include main() { int i,j=0; char b[100],a[100]="****aaaa**"; for (i=0;a[i]!='\0';i++) { if (a[i]!='*') //遇到不是*就把a赋给b数组 b[j++]= a[i]; else { b[j++]

c 字符串数组 复制操作

#include &amp;lt;iostream&amp;gt; #include &amp;lt;stdio.h&amp;gt; #define MAX_BUF_SIZE 1000 using namespace std; int main() { /***********************字符串复制**************************************/ char buf[MAX_B...

字符串数组中查找固定字符串

/* *在字符串数组中查找固定字符串 */ #include<stdio.h> #include<string.h> #define TRUE 1 #define FALSE 0int find_char(char **strings, char *value) { char *string; //字符串循环变量 char *parValue; //和value一样,只是

逐行读写字符串数组到文本txt文件

C语言方式将字符串数组写入到txt文件中有五个文件名存储在字符串数组中,欲将其逐行写入到txt文件中保存到磁盘上。利用fprintf对文件进行格式化输出void Filewrite() { FILE *fp; char * name[] = {"filen1", "file2", "file3", "file4", "file4"}; fp = fopen("E://test

C语言 字符串指针与二维字符串数组

31.字符串指针 char *str = "hello world";    //hello world这个字符串存储在常量区,str只保存了字符串常量的首地址 字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字

根据输入的字符串创建动态字符串数组

#include #include using namespace std; int main() { string in_str; cin>>in_str; size_t len=strlen(in_str.c_str()); char *result_str=new char[len+1];/*一定不要忘记创建的字符串数组长度应该比字符个数多1,从而可以在最

C语言中字符串和字符数组

字符串概念: C语言中字符串就是用双引号括起来的任意字符序列,在字符串中同时也可以包括转义字符,它是以’\0’为结尾的字符数组 如”helloworld”; char *string = “helloworld”; 字符数组: 用来存放字符的数组,字符数组中每个元素存放一个字符,数组元素的类型为char类型,初始化字符数组的时候最好以’\0’结尾,

LeetCode -- 求字符串数组中的最长公共前缀

LeetCode -- 求字符串数组中的最长公共前缀

C语言字符数组的定义与初始化

1、字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。 char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'}; 即把10个字符分别赋给str[0]到str[9]10个元素 如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组 长度,则只将这些字符数组中前面那些元素,其余的元素自

给定["a","b","a","b","c","a","b","c","b"]字符串数组,然后使用Map的key来保存数组的字符串元素,value保存该字符串元素出现的次数。

import java.util.HashMap; public class p3 { public static void main(String[] args) { HashMap hM=new HashMap(); String[] sz={ "a","b","a","b","c","a","b","c","b" }; for(i

C语言:字符串、结构体中关于数组的几个问题

【字符串】: 1、字符串的储存:是基于数组实现的,(character string)是以空字符(\0)结尾的char数组。 2、定义(基本的):【字符串常量】{ 又称为字符串文字,是指位于一对双引号中的任何字符,所以int a =“s”表示a被赋值一个指向字符串的地址,故这个式子是错误的。 字符串常量是静态存储,const char  *s="hello,everyone!" ;const

算法#26--查找字符串数组中最长的公共前缀

公共前缀问题

LeetCode(14)最长公共前缀

编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 &quot;&quot;。示例 1:输入: [&quot;flower&quot;,&quot;flow&quot;,&quot;flight&quot;] 输出: &quot;fl&quot; 示例 2:输入: [&quot;dog&quot;,&quot;racecar&quot;,&quot;car&quot;] 输出: &quot;&quot; 解释: 输入不存在公共前缀。 说明:所有输入只包含小写字母 a-z 。cla

怎样获取字符串数组的长度

假如存在如下的字符串数组 char* pArry[] = {"abc","defg","dddddd"}; 怎样计算这个数组的长度。 C、C++中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在

C语言(C++)如何给字符数组赋值

1、char c[5];  c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’; 2、charc[5]={‘H’,’e’,’l’,’l’,’o’}; 3、(1)如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预测的;   (2)如果花括号中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理;   (3)如果花括号中提供的初值

c 从字符串数组中选择特定的字符串

#include <stdio.h> #include <string.h> #include <stdlib.h> /* * 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2, * 即结果字符串中不能包含S2。 * 提示:输入数据的设计使得不可能出现输出为空的情况。 */ char* slectStr(char** r,char** s,int a,int b); int main

C中的字符数组定义和引用(学习笔记)

c语言中,没有专门的字符串变量。。。。汗。。。。。所以,不严谨的说,字符数组相当于字符串。 #include&amp;lt;stdio.h&amp;gt; int main() { int i; char a[5]={'k','a','n','g'}; //比python啰嗦啊。。 //3、初始化字符数组,注意里边的字符元素都用单引号 ...

C/C++ 字符数组的输入输出

字符数组就是char数组,当维度是一维是可以当做“字符串”,当维度是二维时可以当成是字符串数组,即若干字符串。字符数组的输入除了使用scanf外,还可以使用getchar或者gets;其输出除了使用printf外,还可以使用putchar或者puts。 (1)scanf输入,printf输出 scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它能够识别空格和换行符并将其保

C语言基础,字符串数组

个人总结的很好的C语言基础,字符串数组,字符串数组对于初学者是很难理解的部分

Linux c --- 数组与字符串

Linux c — 数组与字符串1.数组与字符串的常用函数1.1 memset首先可以用man命令查看一下memset函数的使用手册 关于man命令在linux下开发的使用 man 1 +命令 如:ls,man man 2 +系统借口 如:open,close man 2 +C语言库函数 如:fopen,memsetNAME :函数名和该函数的释义 S

C语言二维字符数组的运用—模拟对话

1,二维数组的定义规则 2,二维数组指针的理解和运用 3,字符数组打印时的特殊性 4,sizeof()运算符的使用

5.编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。

示例 1: 输入: [“flower”,”flow”,”flight”] 输出: “fl” 示例 2: 输入: [“dog”,”racecar”,”car”] 输出: “” 解释: 输入不存在公共前缀。 第一种: class Solution { public String longestCommonPrefix(String[] strs) { int...

c/c++ 拼接字符串 与函数传参时数组不是传值

c: #include using namespace std; int main() { const char *str1 = "ni hao"; const char *str2 = "Li ming"; const size_t len = strlen(str1)+strlen(str2); char *n_str = malloc((char*)*(len+1));//n

寻找字符串的最长公共前缀

 题目: Longest Common Prefix Write a function to find the longest common prefix string amongst an array of strings. Subscribe to see which companies asked this question 思路是这样的: 2个字符串的最

[C语言][编程]将字符串分割到字符串数组中

学习Redis的sds.c文件中,有一个关于将字符串分割到字符串数组中的代码,我学习并实现了一下,但没有考虑内存问题和其它的一些误操作的问题,换言之,只实现了最基本的功能。 //该程序实现的是将字符串分割成子字符串 /*例如输入"123/456/7/89/1","/"作为分隔符, 程序会返回:123 456 7 89 1 */ #include #include void splitlen(c

C语言中字符数组的初始化与赋值

C语言中字符串的初始化赋值及其他操作

c++字符串数组和string

1 字符串数组定义 \0 2 字符串数组常见函数及自己的实现 3 string 的使用 大小 c_str()成员函数

C语言字符数组赋初值

C语言可以给字符数组赋值的方法 转载 2012年04月06日 10:23:36 标签:语言 /c 31190 学了这么多年的C语言,突然发现连字符串赋值都出错,真的很伤心。 char a[10]; 怎么给这个数组赋值呢? 1、定义的时候直接用字符串赋值 char a[10]="hello"; 注意:不能先定义再给它赋值,如char a[

C语言中,利用宏定义一个字符串和字符数组定义的字符串其末尾都会自动添加\0字符

C语言中, 利用宏定义一个字符串#define MYPHONE "AT+CMGS" 字符数组的方式来定义一个字符串unsigned char SMS[]="HELLO, WELCOME TO RCCTS!"; 问题:这两种字符串定义方式下,在最后末尾都会自动添加字符'\0'吗? 以下是验证程序 #include #define MYPHONE "A

[Leetcode] 14. 最长公共前缀

题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 &quot;&quot;。示例 1:输入: [&quot;flower&quot;,&quot;flow&quot;,&quot;flight&quot;] 输出: &quot;fl&quot; 示例 2:输入: [&quot;dog&quot;,&quot;racecar&quot;,&quot;car&quot;] 输出: &quot;&quot; 解释: 输入不存在公共前缀。 说明:所有输入只包含小写字母 a-z

删除其重复

删除字符串数组中的重复

1、用C语言实现字符数组1拷贝到字符数组2,替代strcpy函数

刚入IT行业,还有很多不懂,想深入学习C,一点一点的积累,这个要求曾经在笔试的时候碰到过。题目主要参考尹成老师博客里面的,拿过来用我自己的思维写一遍。 #include #include #define NUM   100 //给需要拷贝到的数组设定大小 void copy(char str1[], char str2[]) { int n = 0; while (str1[n]

相关热词 c#跨线程停止timer c#批量写入sql数据库 c# 自动安装浏览器 c#语言基础考试题 c# 偏移量打印是什么 c# 绘制曲线图 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行
立即提问