c语言 字符串 赋值问题 高手帮忙 谢谢~

来源:百度知道 编辑:UC知道 时间:2024/09/26 16:38:15
举个例子,比如我想把一个字符串变量赋值给另一个,该怎么办?
比如
char a[4]={"abcd"};
如果再定义一个b,是b和a是一样的,该怎么写?

1.首先char a[4]={"abcd"}; (字符数组 存放字符串)这样定义 是错误的。

因为系统对字符串常量的 最后会自动加上 '\0' 作为结束符。

a[0]='a';a[1]='b';a[2]='c';a[3]='d'; 那么会出现a[4]='\0'的情况。
会溢出,系统不可以判断出字符串结束。

2.程序改为:

#include<conio.h>
#include<stdio.h>
#include<string.h>

void main()
{

char a[5]={"abcd"}; /*定义一个字符数组*/
char b[5]; /*定义一个字符数组*/
clrscr();
strcpy(b,a); /*字符串复制函数*/
puts(a);
puts(b);

getch();

}

参考代码:
#include <stdio.h>
#include <string.h>

void main()
{
char a[5] = "abcd";
char b[5];
strcpy(b, a);
puts(b);
}

一般都是用指针来
char *p = a;
意思是指针p指向字符数组a的首地址,你printf("%s",p)的话就会输出abcd了

for(int i = 0; i < 4; i++)
b[i] = a[i];