ddgw.net
当前位置:首页 >> C语言,字符串数组的输出; >>

C语言,字符串数组的输出;

是printf("%s",str);表示从这个地址开始输出直到遇到字符串结束符

字符数组的输入输出可以有两种方法: 逐个字符输入输出(%c) 整个字符串一次输入输出(%s) 输出的字符中不包括结束符'\0' 用%s输出字符串时,printf函数中的输出项是字符数组名,不是数组元素名 如果一个字符数组中包含多个'\0'

使用"%s"模式输出 但是这样做有限制:char str[255]; 用scanf("%s",str);获得输入时,最多容纳254个字符,因为读入操作会在后面加个"\0"; 用printf("%s",str); 输出时,数组一定要是用"\0"结束的.不遵守以上规则会产生数组越界,导致不可知的错误.

char *a ={"abcd","ef","gh","ijk"};//字符串数组相当于指针数组,而你却将它赋给一个一级指针,这是不行的.char *a[]={"abcd","ef","gh","ijk"};//这样才对.按下标取a中的元素就可以拿到里面的字符串,拿到后赋给一个char*,然后printf就可以了.另外,输出字符串,不需要一个一个字符输出,可以指定'%s'格式化符让printf输出一个字符串.如: char *p="hello world";printf("p = %s",p);//输出字符串p的内容

#include<stdio.h> void main() { char str[]={""}; scanf("%s",str); printf("%s",str); } 貌似不对

//#include "stdafx.h"//vc++6.0加上这一行.#include "stdio.h"#include "string.h" void main(void){ char a[]="王",b[]="张",c[5]; strcat(strcpy(c,a),b); printf("%c%c\n%s\n",c[0],c[1],c+2); }

你的a是一个int数组,而%s是字符串打印输出,因此针对你上面的情况没有其他输出办法了,或则可以改成循环输出int i = 0;for (i = 0; i 追问: 我是初学者,我想问,你这种是不是C语言最基本的把整数转换成字符串的方式?还有没有其他

#include<stdio.h>void main(){ char b[ ]="Hello you"; b[5]=0;//将数组b的第6个字符换成0,即 将空格换成0 printf("%s",b);//输出:Hello0you} 希望对你有所帮助哦!

咱们bai分析下:字符数组中如果保存的是字符串,比如char tar[20] = "hello"; 要知道字符串默认的是以du'\0'结尾的,所以这里隐含的最后还有一个'\0'而printf("%s", tar); 这个语句,在执行的时候zhi,是从tar指向的字dao符开始输出,一直输出直到遇到第一个'\0'为止. 所以会输回出hello.而如果tar[20] = {'h', 'e', 'l', 'l', 'o'};那么这个时候printf("%s", tar);同样的还是从第一个元素开始输出,还是到'\0'为止,但答因为这里没有'\0'就还接着往后输出,而之后的内容,已经不再是该数组的空间,所以将会输出不可预测内容了.

char *a[max],*b[max];; 改成 char a[max],b[max];

网站首页 | 网站地图
All rights reserved Powered by www.ddgw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com