C语言里如何把输入字符串赋值给字符数组?

说个例子吧~

c语言输入字符串scanf c语言输入字符串scanf字符c语言输入字符串scanf c语言输入字符串scanf字符


c语言输入字符串scanf c语言输入字符串scanf字符


char a[10];

怎么给这个数组赋值呢?

1、定义的时候直接用字符串赋值

2、对数组中字符逐个赋值

char a[10]={'h','e','l','l','o'};

3}else、利用strcpy

说个例子吧~

char a[10];

怎么给这个数组赋值呢?

1、定义的时候直接用字符串赋值

2、对数组中字符逐个赋值

char a[10]={'h','e','l','l','o'};

3、利用strcpy

#include }

int main()

{char str="12456";

char str1[10];

int i;

while(str!='0'){

for(i=0;i

str1[i]=str;

printf("%cn",str1[i]);

str++;

}}

printf("Hello world!n");

return 0;

i=0;

while((class[i]=getchar())!='n')

i++;

char str[80];

scanf("%s", str);

char s[100] = "Hello World";

关于C语言输入字符串?

scanf读取字符串时,遇到空格、制表符、回车,就结2) 读入一句 while(ch!='#'&& k< MAXLEN-1)束读取。

因此,如果是scanf("%s",string);则得到的字符串是I,由于I后面有空格,a[20],不再继续读取。

要想读取整个字符串,要用到gets,格式为gets(string);

选D

C语言编程题在屏幕上输入一个字符串和一个要插入的字符

在程序中也写 1,2,3

1 strlen是C库函数,需要包含头文件,作用是求一个字符串的大小,返回值为无符号整数。比如一个字符串strlen(“hello”),那么返回5。在C中,0表示,其他任何数表示真,!expr表示这个表达式为,即strlen(s)返回值为0。if(!strlen(s))即如果字符串为空串

2、3 insert函数采用的算法是,如果需要插入的字符串是空串,那么直接赋值即可;否则,先将需要插入的字符串的前面部分到新字符串中(strncpy(string,s,i)

),插入字符到新字符串(string[i]=t ; string[i+1]='0';),再将后面部分附加到新字符串(strcat(string,(s+i)); //i是s字符串偏移)

你这份代码有相当多的错误,附一份修改后的,insert2为insert的另一个简短版本

#include

void insert(char s[],char t,int i);

void insert2(char s[],char t,int i);

int main()

{char str1[100],c;

int ition;

printf("please input string:

");

gets(stfor(i=0;i

printf("piease input a char:

");

scanf("%c",&c);

printf("please input ition:

");

scanf("%d",&ition);

insert(str1,c,ition);

puts(str1);

}void insert(char s[],char t,int i)

{char string[100];

if(!strlen(s))

{string[0]=t;

string[1]='0' ;

string[i]=t;

string[i+1]='0';

strcat(string,(s+i));

}strcpy(s,string);

}void insert2(char s[],char t,int i)

{int j = strlen (s) ;

while (j >= i)

s[j+1] = s[j--] ; //从第i个字符往后移动一个位置。如s="abc" i=0,移动后s="aabc"

s[i] = t ;

C语言 编程 输入输出字符串 除掉前面部分

#include

在c语言中,输入输出字符串有以下两种方式:

/fill_e/

1用scanf/printf输入输出。

scanf/printf是c语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char)也在其支持范围内。

格式化字符为%s。

scanf("%s",str);

输出

printf("%s",str);

2c语言还支持专门的字符串输入输出函数:gets/puts。

gets的作用为,读入一行输入,并将读到的换行符替换为字符串结束符。

puts的作用为,将字符串单行输出,即输出字符串内容后,会自动在结尾增加换行。

输出

puts(str);

C语言如何一次输入多个字符串,然后再输出

for(i=0;i需要准备的材料分别有:电脑、C语言编译器。

scanf函数是C语言标准中的格式化输入函数,他的最简单作用是从标准输入设备(键盘)获取一个值到一个存储空间中

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:

b[20];scanf("%s%s",

a,

b);printf("%sn%sn",

a,

b);

3、编译器运行test.cpp文件,此时一次性输入了多个字符串并打印了出来。

/输入多个字符串需要有结束条件,可以事先约定输入多少个字符串,也可以是输入特定字符串/

#include

#include

void

main()

{int

i,k=0,n=10;

str[100][200]={0},str1[10]="####";

while(1)

{gets(str[k]);

if(strcmp(str[k],str1)==0)

break;

k++;

if(k>=n)

break;

}for(i=0;i

printf("%sn",str[i]);

C语言scanf函数输入单个字符%c用%s代替

它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。

原因是在input函数里面有接受用户输入的动作,而输入一定是以回车结束,那么这个回车就会残留在缓存中,而当你的scanf读取flag的时候,程序会自动获取前面的那个回车符号,这就是用%c会自动跳过的原因,而用%s的话,程序就会等待下一行输入,回车符号并不会被接收,建议在scanf("%c",

1.scanf不能接受空格、制表符Tab、回车等;对末尾回车符的处理:把回车符保留在缓存中。

fflush(stdin);

//清空缓存

scanf("%c",

&flag);

原因是在你的input函数里面有接受用户输入的动作,而输入一定是以回车结束,那么这个回车就会残留在缓存中,而当你的scanf读取flag的时候,程序会自动获取前面的那个回车符号,这就是用%c会自动跳过的原因,而用%s的话,程序就会等待下一行输入,回车符号并不会被接收

建议你在scanf("%c",

fflush(stdin);

//清空缓存

scanf("%c",

&flag);

就不会有问题了

scanf("%c",

&flag);

:y

再回车没反应?

可能是在前面的

input(num,a);

count(a);

sort(a,order);

中存在有缓冲,因为%c不会跳过空格等空字符,而%s是会跳过的,这也许是的别。

解决办法:

在scanf("%c",

fflush(stdin);

然则也不清楚是不是这个原因,

你可以试一下,多年未动C的飘过。。。

用scanf(%s,

&flag)应该会有内存溢出错误。

太久没弄过c了,帮你顶下吧。

C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用scanf还有哪些要注意?

定义

加空格屏蔽了空白字符。

%c前没空格,scanf()将读取标准输入流中的个字符,%c前有空格,scanf()则读取标准输入流中个非空白字符。

使用scanf函数时应该注意的问题:

scan:扫描 f :format,格式

1、整数和小数分别使用使用控制符%d %lf 表示(float除外,用%f)。

2、参数前面使用&符号,&号前要空格。

3、scanf输入语句中替换符后不能加空格,也不能加

4、scanf()中的变量必须使用地址。

5、scanf()的格式控制串可以使用空白字符或其它非空白字符,使用空白字符会使scanf()函数在读作中略去输入中的一个或多个空白字符。使用非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

6、在用"%c"输入时,空格和“转义字符”均作为有效字符。

扩展资料:

(1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。

(2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"作符。

(3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读作中的位数。

(4) scanf函数中没有类似printf的精度控制。

(5) scanf中要求给出变量地址,如给出变量名则会出错

如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。

参考资料:

如果scanf中%d是连着写的如“%d%d%d”,在输入数据时,数据之间不可以用逗号分隔,只能用空注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!白字符(空格或tab键或者回车键)分隔。

“2 (空格)3(tab) 4” 或 “2(tab)3(回车)4”等。若是“%d,%d,%d”,则在输入数据时需要加“,”,如“2,3,4”。

比如scanf(" %c" ,&c);

你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误作,忽略空格输入,接受个非空格输入。

扩展资料:

scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include

在有一些实现中,printf函数与scanf函数在使用时可以不使用预编译命令#include

参考资料:

空格确实不是必须的,但有了空格就可以忽略你输入的空格。

例如:scanf(" %c" ,&c),你输入了' a'(a前面有个空格),a就能被c接受。

但控制符前如果没空格,那c就接受了空格,这个可以防止误作,忽略空格输入,接受个非空格输入。

注意事项:

对于scanf()而言,%c是个较为特殊的说明符。 %c前没空格,scanf()将读取标准输入流中的个字符,%c前有空格,scanf()则读取标准输入流中个非空白字符,屏蔽了空白字符。

扩展资料:scanf

C语言中常用的标准输入输出函数,它的常规用法是scanf(“输入格式”,输入地址),scanf从输入缓冲区取入数据按照指定的“输入格式”存储到指定的“输入地址”。

但是有一类问题通常令人头疼,那就是字符串的读入,此处仅仅讨论使用scanf读取字符串的一些问题。理论上你只需要定义一个字符指针,然后scanf每次读入字符存储到该指针所指的存储空间,之后指针值自动加1。

参考资料:

这不是为了美观,1楼不要误人子弟。

空格确实不是必须的,但有了空格就可以忽略你输入的空格,懂我的意思吗?

比如scanf(" %c" ,&c);

你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,明白了没?这个可以防止误作,忽略空格输入,接受个非空格输入!

空格不是必须的,scanf("%c %c",a,b)只是提示在输入时两个字符必须有空格间开。如果是scanf("%c%c",a,b)那没两个输入字符不要有空格,不过编程时加上空格,这算一个书写规范吧,要不然如果你scanf("%s%s",a,b)系统可能区分不了你的字符串何时结束。

C语言scanf输入时可以加逗号的吗?

可以,但是输入数据的时候一定也要加上逗号。

用scanf()读取数据时,输入的格式必须和scanf()的格式控制字符串对应,比如说:

1、scanf("%d,%d",&a,&b);因为两个%d之间有一个逗号,所以在输入时两个整数之间只能用逗号分隔,如果用其它符号分隔就会出错(比如说此时用空格、回车分隔就会出错)

2、scanf("%d%d",&a,&b);这个格式控制字符串就可以用空白分隔(空格,回车都可以)

兄弟们,我终于发现了。

无论课本还是老师讲课,都说可以加逗号,只要注意前后格式一致就好。例如

scanf("%d,%d",&a,&b);

即便这样 也还是出错

是因为 即使在你写程序时,逗号都是用&flag);前清空缓存英文的。

但是!在你自己写的程序里键入时,不知为啥自动变为中文,所以注意用英语逗号就好了。

能加,但是像上面的,执行输入两个整数时,也要加逗号

可以加,但是还是不加吧!!!如果是竞赛的话,规则基本上都是不加,

逗号

输入时可能须要中文格式的逗号才能行

C语言输入一个中间代有空格的字符串,为什么不可以用scanf? 急急急

因为C语言的字符串是以'0'作为结束符为标记的,所以当有空格的时候,scanf就会忽略后面的字符串的

有char了char

a[10];,那么a就是这个数组的个元素的指针,&a就是这个数组的指针;因为一维数组的个元素的指针和这个数组的指针是同一个地址,区别是a+1指向a[1],而&a+1就指向a[10]了(这里已越界了)。但&a和a的"值"是相同的,只是类型不同。c调用函数时,实参的类型都会被强制为形参的类型,scanf("%s",

&a)或scanf("%s",

a)中要求gets(str);参数是char

型指针,那么&a尽管是char

类型,但被强行转换为char

型了……

scanf的话读到空格那么这个字符串就结束了。如果你想读进带空格的字符串就用gets();

用scanf时,它是以空格来标识输入字符串的结束

c语言中scanf("%d%c", &n);是什么意思

格式字符{strncpy(string,s,i) ;串的一般形式为:

%[][输入数据宽度][长度]

类型

其中有方括号[]的项为任选项

“”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。

如:

scanf("%d

%d

%d",&a,&b);

当输入为:1

23时,把1赋予a,2被跳过,3赋予b。

像你的

scanf("%d%c",

&n);

把输入的内容赋给n

在这里

%c不起作用

输入整数n,等价于scanf("%d",

&n);你完全可以打印一下flag的码值来调试一下嘛。。,后面的三个%c没有用的

%d代表整数,又比如%s代表字符串

没见过这样的写法哦,一般%d是整形

%c是字符型

%f浮点型

%s是字符串

用scanf输入数据到数组中需要加&吗?

#include

逐个输入数组中的数,是要用&的,但是如果是字符数组,以字符串形式整体输入,就不用,示例:

#includeint main(){int n;int t=0;scanf(“%d”,&n);char arr[n];int i;for(i=0;i

可以观察到,arr[0]并未存入字符,t的数值比预期少1

原因:这种情况通常发生在前面已经有了输入语句,而当前的scanf是在接收字符(即用%c控制输入)时。由于前面的输入语句(不一定是scanf)把输入的'

解决这一问题的最简单办法是在接收字符的scanf的控制符“%c”中的%前加一个空格写成“ %c”,把前一次输入遗留在输入缓冲区里的所有广义空格(' '、't'、'

改正错误之后的代码:

int main()

{int n;

int t=0;

scanf(“%d”,&n);

char arr[n];

int i;

{scanf(“ %c”,&arr[i]);

}printf(“%c

{if(arr[i]=='L')

{t=t+1;

}else if(arr[i]=='R')

{t=t-1;

}}

printf(“%d

}将scanf中的%c变为 %c,得到预期结果。

扩展资料:

c如果只有a被成功读入,返回值为1语言各种输出方法实例:

#include

main()

{int a, b;

scanf( “%d%d”, &a, &b );

printf( “%d+%d=%d

printf( “%d-%d=%d

printf( “%d%d=%d

printf( “%d/%d=%d

printf( “%d%%%d=%d

getch();