精华内容
下载资源
问答
  • C语言字符串赋值的方法

    万次阅读 多人点赞 2020-09-13 10:57:40
    C语言中,常见的3种字符串赋值有如下: 1、通过字符数组直接初始化 int main() { char str[10] = "China";//还可以写成char str[10] ;str[10] = "China"; printf("str = %s", &str); return 0; } 但是,直接...

    首先,C语言没有向C++,Java,python等面向对象的语言中string这样的字符串类型,C语言中的字符串是存放在字符型数组中的

    C语言中,常见的3种字符串赋值有如下:

    1、通过字符数组直接初始化

    int main()
    {
    	char str[10] = "China";//还可以写成char str[10] ;str[10] = "China";
    	printf("str = %s", &str);
    	return 0;
    }
    

    但是,直接把数组元素赋值给数组名(也就是数组首元素的地址),是不行的

    int main()
    {
    	char str[10] ;
    	str  = "China";
    	printf("str = %s", str);
    	return 0;
    }
    

    这样会出现编译错误:C2106(运算符的左操作数必须为左值)

    2、使用strcpy函数进行初始化

    int main()
    {
    	char str1[10],str2[] = "China";
    	strcpy(str1, str2);//此行代码还可以写为 strcpy(str1,"China");
    	printf("str1 = %s", str1);
    	return 0;
    }
    

    这里需要注意的是,使用strcpy函数,strcpy(str1,str2),字符数组1必须定义的足够大,以便容纳被复制的字符串2,避免数组越界。

    以下写法是错误的

    char str1[10],str2 = "China";
    str1 = str2;
    

    注:
    在C语言中,将一个字符串赋值给另一个字符串,只能使用strcpy函数

    但是,可以使用赋值号实现对单个字符的赋值

    如:

    char str1[10];;
    str1[0] = 'A';
    str1[1] = 'B';
    str1[2] = '\0';
    

    这里需要注意的是,结束后一定要自行添加 ‘\0’
    否则,就会出现” AB烫烫烫烫烫烫烫 ]D痨“的编译结果

    3、通过指针赋值

    通过指针赋值字符串相对比较难理解,大家先看一段代码

    #define _CRT_SECURE_NO_WARNINGS//在VS2019下可以加,否则会出现C4996问题
    #include <stdio.h>
    int main()
    {
    	char* string = "I Love China";
    	printf("string  = %s", string);
    	return 0;
    }
    

    如何理解这段代码:
    ①程序定义了一个char *类型的指针变量(字符指针变量)string,在C语言中,指针 = 地址,顾名思义,指针变量存放着地址
    ②字符串常量"I Love China",C语言在处理字符串常量是按字符数组来处理的。
    ③结合上两点可以知道,该字符指针存放的是字符常量第一个元素的地址
    因此,输出时,只需告诉编译器字符常量首元素的地址即可

    char* string = "I Love China";
    

    还可以写为:

    char * string;
    string = "I Love China";//不可以写为*string = "I Love China";
    

    不可以写为:
    *string = “I Love China”;

    因为,字符串常量在C语言中是按字符数组来存储的,string 存储地址


    另外,在谈谈字符串的输出;

    char str[10] = "China";
    printf("str = %s", str);
    

    而,整型数组的输出确是需要用到for循环

    展开全文
  • 字符串赋值

    万次阅读 多人点赞 2017-12-05 20:48:50
    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];
    怎么给这个数组赋值呢?
    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]; strcpy(a, "hello");
    易错情况:
    1、char a[10]; a[10]="hello";//一个字符怎么能容纳一个字符串?况且a[10]也是不存在的!
    2、char a[10]; a="hello";//这种情况容易出现,a虽然是指针,但是它已经指向在堆栈中分配的10个字符空间,现在这个情况a又指向数据区中的hello常量,这里的指针a出现混乱,不允许!
    还有:不能使用关系运算符“==”来比较两个字符串,只能用strcmp() 函数来处理。


    C语言的运算符根本无法操作字符串。在C语言中把字符串当作数组来处理,因此,对字符串的限制方式和对数组的一样,特别是,它们都不能用C语言的运算符进行复制和比较操作。


    直接尝试对字符串进行复制或比较操作会失败。例如,假定str1和str2有如下声明:
    char str1[10], str2[10];
    利用=运算符来把字符串复制到字符数组中是不可能的:
    str1 = "abc";     /*** WRONG ***/
    str2 = str1;       /*** WRONG ***/
    C语言把这些语句解释为一个指针与另一个指针之间的(非法的)赋值运算。但是,使用=初始化字符数组是合法的:
    char str1[10] = "abc";
    这是因为在声明中,=不是赋值运算符。
    试图使用关系运算符或判等运算符来比较字符串是合法的,但不会产生预期的结果:
    if (str1==str2) ...    /*** WRONG ***/

    这条语句把str1和str2作为指针来进行比较,而不是比较两个数组的内容。因为str1和str2有不同的地址,所以表达式str1 == str2的值一定为0。


    转载自:http://blog.csdn.net/cherish_xmm/article/details/43267603

    展开全文
  • C语言字符串赋值

    千次阅读 2021-03-06 12:50:16
    C语言字符串赋值 #include <stdio.h> int main() { char s[10]; s = "string"; //main.c:14:7: error: assignment to expression with array type //s = "string"; char *sp; *sp = "string"; //...

    C语言字符串赋值

    #include <stdio.h>
    
    int main()
    {
        char s[10];
        s = "string";   //main.c:14:7: error: assignment to expression with array type 
                        //s = "string";
        char *sp;
        *sp = "string"; //Segmentation fault
        
        char *spi="string!"; //Success
    }

    char s[10];
    s = "string";   //main.c:14:7: error: assignment to expression with array type 

    为什么会出现assignment to expression with array type这个报错呢,因为s是一个数组名,数组名无法赋值。

    char *sp;
    *sp = "string"; //Segmentation fault

    为什么会出segmentation fault呢?因为sp是一个指针类型,指向的一个字符所以无法存储字符串 

    展开全文
  • 前言: 通过指针的方式,实现字符串赋值并输出 Code: #include<stdio.h> int main(){ char *c; c="This is a string"; printf("%s", c); } 结果: ps: 1、这里的指针变量c存储的为字符串的首地址,输出...

    前言: 通过指针的方式,实现字符串的赋值并输出

    Code:

    #include<stdio.h>
    
    int main(){
    	char *c;
    	c="This is a string";
    	printf("%s", c);
    }
    

    结果:
    在这里插入图片描述
    ps:
    1、这里的指针变量c存储的为字符串的首地址,输出的时候可以利用%s, 和指针c输出。
    2、不可以写成*c="string",字符串在c语言中默认按照数组来存储,而c存储的仅为地址。

    展开全文
  • 1)下面两种方式的字符串赋值均正确 char str1[] = "hello str1"; char *str2= "hello str2"; char *str3; str3 = "hello str3"; 2)char str1[] = "hello str1"; 是将字符串赋值给数组,字符串存在数组里(这里...
  • 1.定义时用字符串赋值 char s[15] = "helloworld"; 不能先定义,然后赋值,如: char s[10]; s = “helloworld”; 原因是s是指向一个栈区数组首元素的指针,不能给指针赋上字符串。 注意!C语言中字符串以字符 ‘\0...
  • 将一个字符串赋值给另一个字符串

    千次阅读 2021-05-25 08:35:28
    C语言: #include #include int main() { char a[10]; char b[]="lllsss";//或者写成char *b="lllsss";...//a中原有的值会被b值覆盖,与a、b字符串长度无关 string b="amylll"; a=b; cout; return 0; }
  • 本文通过示例详细介绍了Go语言实现字符串切片赋值的方法,感兴趣的朋友们跟着小编一起来看看吧。 1. 在for循环的range中 func StrRangeTest() { str := []string{"str1", "str2", "str3"} for i, v := range str...
  • C语言字符串赋值给数组/char *

    千次阅读 2021-01-27 19:22:20
    字符串(c语言): 以“abcd”为例,解释...1. 字符串赋值给char * int main(int argc, const char *argv[]) { char *p1 = "hello"; printf("p1[0] = %c\n", *p1); printf("%s\n", p1); char *p2 = NULL; ...
  • 字符串赋值给字符指针

    千次阅读 2020-06-28 15:58:01
    因此,我们可以把字符串赋值给一个指向字符的指针。 此时的指针类似与一个字符数组的数组名,但不同的是,这个指针是可变的,而数组名指针是常量指针。这也就是为什么修改后的代码是错误的,因为我们不能赋值给一个...
  • 问不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值。“ 那么str1=“China”是不是错的? char a[ ]=‘toyou’; 为什么是正确的呢? 举例如下: char s[20];s=“helo”;这样是错误的,原因就是不能...
  • C语言:字符串赋值给字符数组

    千次阅读 2020-11-02 23:20:03
    一个字符串可以赋值给一个字符数组,只要不定义这个字符数组的长度就行 例如: char a[]=“Hello” 此时存在数组里面,也是一个字符一个位,不包括双引号 如果要输出时 就用strlen()计算数组的长度 然后用个for...
  • c++ 字符串赋值

    千次阅读 2018-12-15 21:37:03
    从大一学c语言到现在都快三年了,今天居然还在简单的字符串赋值的过程中犯了错误,应该记下来,以免日后再犯。 这是一个结构体 typedef struct student { char name[21]; char sno[21]; int grade; } student;...
  • 一、前言 前面,我们整体学习了有关文件操作方面的知识,实现了检测、新建、修改文件并写入或者复制移动的操作。本次学习的是有关字符串方面的操作...字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Jav...
  • golang 字符串赋值

    千次阅读 2019-02-11 14:22:21
    func ResetValue(s *string, newValue string) { sByte := []byte(*s) for i := 0; i &lt; len(sByte); i++ { sByte[i] = ' ' } *s = newValue } func main() { ...fmt....
  • 字符型指针,数组,字符串赋值

    千次阅读 多人点赞 2019-07-09 10:17:44
    C语言中,为什么字符串可以赋值给字符指针变量 char *p,a='5'; p=&a; //显然是正确的, p="abcd"; //但为什么也可以这样赋值?? 问:一直理解不了为什么可以将字串常量赋值给字符指针变量,请各位指点! 答...
  • 5种字符串赋值方法

    万次阅读 2018-02-20 20:55:00
    public class CreatString { public static void main...//直接引用字符串常量 System.out.println(a+"\n"); String b =new String("爱拼才会赢");//利用构造方法实例化 Str...
  • C语言结构体中字符串赋值

    千次阅读 2019-07-08 17:15:40
    以上的代码,编译会提示出错,因为在C结构体中,字符串不能直接这样赋值,需要用字符串拷贝语句strcpy,如下代码: struct student  {  char name[20]; }; #include #include main() { ...
  • 1.可以将字符串赋值给指向字符的指针p,而不能将字符串赋值给一个字符数组。 char a[10]="hello";//正确的。 char a[10];a="hello";//错误的 char *a ="hello";//正确的 第一种写法:即char a[10],开辟了10个字节...
  • 不能直接将字符串赋值给指针

    千次阅读 2019-03-23 23:24:24
    int main() { char a[3][4]; a[0]="AAA";//运行错误, error C2440: “=”: 无法从“const char [4]”转换为“char [4]” strcpy(a[1],"BBB");//运行正确 }
  • socket类有一对函数send()和recv()但是当...因此就产生了要把用GetDlgItemText()获得的字符串赋值给字符数组,然后才能正常传递的问题。 到网上搜索了半天终于找到了转换的方法: char ss[1024]; CString temp; str...
  • C语言中字符串赋值处理方式

    万次阅读 多人点赞 2016-11-18 09:45:28
    C语言中,字符串可以赋值给字符指针变量,或者将字符串用字符数组保存。因为c语言没有直接对字符串提供语法糖方面的支持。而且C标准库很多方法处理字符串是以空字符结尾为前提的,这个必须要记住。char *p,a='5'; p=...
  • 本代码主要利用MATLAB工具实现MATLAB 直接赋值构造字符串示例,简单明了,易于理解
  • Python:给字符串赋值

    万次阅读 2018-08-03 19:54:32
    在 Python 使用 exec() 或 exec 可以给一个字符串赋值,其原理其实就是使用这个函数来执行这条字符串。 python 3 中 exec() 为一个函数: &amp;gt;&amp;gt;&amp;gt; exec(&quot;W1 = 123&quot...
  • 【Bash】多行字符串赋值给变量

    千次阅读 2019-10-29 22:30:26
    将JSON串赋值给变量x IFS='' read -r -d '' x <<"EOF" { "hello": "world", "test": 1 } EOF echo $x
  • 字符数组用字符串赋值的三种可行形式: 1、定义的时候直接用字符串赋值 char a[10]="hello"; 【注意】不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的,一个字符怎么能容纳一个字符串?况且a[10...
  • python中给字符串赋值的几种方式

    万次阅读 2018-10-06 17:49:33
    # -*- coding:utf-8 -*- s = 'abcdef' s = list(s) s[1] = 'E' s = ''.join(s) print s s = s[0:1]+ 'E' +s[2:] print s s = s.replace('b','E') print s s = 'aEcdef' print s
  • 字符串赋值操作

    千次阅读 2017-04-14 09:36:22
    用常量字符串赋值,下面代码中的str1; 直接用另一个字符串赋值,见str2; 用一个字符串的前一段子串赋值,str3; 用另一个字符串的一个子串赋值,str4; 用几个相同的字符,赋值,见str5.   &2 测试源代码  ...
  • 直接上代码: int i, n; char *string[MAXN] = {NULL}; scanf("%d", &n); for(i = 0; i <... string[i] = (char *)malloc(sizeof(char)*MAXS);...这样就可以输入字符串赋值给“字符串”数组 ...
  • 关于指针字符串赋值问题

    千次阅读 2019-10-22 20:49:45
    问题 今天做某高校C语言真题遇到了一个小问题 写出程序运行结果,结果是==!...我为了弄清指针变量赋值问题,又复习了一遍指针与字符串的关系 举个例子: 【例8.21】改变指针变量的值。 #include...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 787,817
精华内容 315,126
关键字:

字符串赋值