关于C语言字符串赋值的问题

比如“123”这个字符串,我想把其中的1赋给a[1],2赋给a[2],3赋给a[3],这应该怎么办呢?本人新手一名,刚学C不久

字符串 要用 char 数组存放,所以先要声明 一个 char 数组。
由于字符串要带一个字符串结束符,所以存放"123", 数组大小至少要用4。
char s[4];
或 多开几个单元: char s[10];
字符串赋值 有多种方法。最常用的是调用函数 strcpy():
char s[10];
strcpy(s,"123"); 就可以了,它自动带字符串结束符。
这时, printf("%s",s); 就可以看到屏幕上显示 123。
=============
一个字,一个字地 赋值也可以:
char s[4];
s[0]='1'; s[1]='2'; s[2]='3'; s[3]='\0';
数组下标从0开始,所以用到 s[0],s[1],...
单引号括起的叫字符常量,一个字,一个字地 赋值 要用字符常量
'\0' 是转义字符,是 字符串结束符
这时, printf("%s",s); 就可以看到屏幕上显示 123。
==============
变量声明时可以带“初始化”,这样赋初值很方便:
char s[4]="123";
当然 char s[10]="123"; 也可以。
char s[]="123"; 也可以。
方括号里没填大小,程序会自动计算大小,大小等于 sizeof("123"), 也就是4。
这时, printf("%s",s); 就可以看到屏幕上显示 123。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-28
#include<stdio.h>

char *b = "123";
char a[4]; //字符数组a的长度设为4才有a[3],若设为3就只有a[0],a[1],a[2]了

int main()
{
a[0] = ' '; //C语言的数组是从0开始的,为了下面输出,只好把0号元素赋以一个空格了,不然 //输出可能是乱码。
a[1] = b[0]; //把字符串"123"中的'1'赋给a[1]。
a[2] = b[1];
a[3] = b[2];
printf("a = %s \n", a); //输出字符串a看看对不对。

return 0;

}
第2个回答  2014-03-29
char a[]=" 123";或char *a=" 123";都可以啊。
第3个回答  2014-03-28
C数组的下标是从0开始的,如果你强行不管那个,就string[] a=new string[4]={"","1","2","3"}