c语言中定义字符串
1. 在c语言中怎样定义字符串
可以通过字符数组或字符指针来定义字符串,也可以用宏定义对常量字符串进版行定义。
下面通权过举例来分别进行说明:
charstr1[]="HelloWorld";//通过字符数组来定义字符串"HelloWorld",数组中每个存储单元存放一个字符
char*str2="HelloWorld";//通过字符指针来定义字符串"HelloWorld",指针str2指向一个存放字符串"HelloWorld"的连续地址单元的首地址
#definestr3"HelloWorld";//通过宏定义来定义字符串"HelloWorld",等价于str3="HelloWorld"
2. C语言里怎么定义字符串变量
C没有字符串定义,字符串是拆开放入char数组里面的。
使用字符数组来实现,不过要预专留一个位置给'\0', C中的属字符串以'\0'结束。
举例说明:
char s[5]="ABCD";
字符数组s最多能存储一个含有个字符的字符串(串结束符'\0'也需要占一个字节)。
char ch[21]="I am happy";
以上没有明确写'\0',编译器会默认自动加一个'\0'。
也可以通过scanf("%s",ch); (以空格为结束标志)
或gets(ch); (以回车为结束标志)
在程序运行时通过键盘输入字符串。
3. C语言中如何定义字符串
C语言的字符串是一片连续的空间,用'\0'表示字符串的结尾。如果版从一个权字符指针作为字符串的起始进行访问,当遇到'\0'之前的整段空间的值都会被当做字符串的内容。LZ的程序中只复制的字符串长度等于串长的部分,没有复制'\0'造成访问越界。在VC++中用Debug模式运行程序,自带的Microsoft
C&C++
Debugger会把未初始化的栈空间的每个字节填充为0xCC以便查错,而访问到这段空间把连续的0xCCCC当做字符串了,按GBK编码显示为汉字“烫”。
可以改成这样:
#include
<stdio.h>
#include<string.h>
int
main()
{
char
a[80],b[80];
int
i,t;
scanf("%s",a);
t=strlen(a);
for(i=0;i<t;i++)
b[i]=a[i];
b[i]='\0';
printf("%s\n",b);
}
====
[原创回答团]
4. c语言定义字符串
定义字符串的方法如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
//定义字符串的几种方式
//字符串和字符数组的区别:最后一位是否是空字符
char names1[] = {'j', 'a', 'c', 'k', '