C字符串输出
Posted 俊king
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C字符串输出相关的知识,希望对你有一定的参考价值。
C字符串输出
C
标准库3
个用于打印字符串的函数:
puts()
fputs()
printf()
区别:
与字符串输入和函数一样,这三个标准输出函数的形参不一样
示例代码:
/*
* @Author: Lucifer
* @Data: 2023-05-28 22:19:00
* @LastEditors: Lucifer
* @LastEditTime: 2023-05-28 22:19:00
* @Description:
*/
# include<stdio.h>
# define DEF "I am a #defined string"
int main(void)
char str1[80] = "An array was initialized to me.";
const char * str2 = "A pointer was initialized to me.";
puts("I am a argument to puts().");
puts(DEF);
puts(str1);
puts(str2);
puts(&str1[5]);
puts(str2 + 4);
/**
* puts()函数的形参是字符串的地址 -> 指针.因为数组自动把数组名作为字符串第一个单词的指针,所以可以直接传数组名
*/
getchar();
return 0;
注意:puts()
函数的特点:
- 形参只需要传入字符串的地址(指针即可)
- 在显示字符串时自动在末尾添加一个换行符
&str1[5]
是指数组的第六个元素(r
),从该元素开始输出往后的内容puts()
在遇到空字符串时就停止输出
fputs()函数
与puts()
函数区别:
fputs()
函数的第二个参数指明要写入的数据文件,如果要显示在显示器上可以使用stdio.h
中定义的C
标准输出:stdout
fputs()
函数不会再末尾添加换行符
printf()函数
与puts()
函数的区别:
- 可以把字符串地址作为参数
- 不会再字符串结尾加上换行符
自定义输入/输出函数
使用getchar()
函数和putchar()
函数定义一个类似puts()
的函数,要求不会在字符串结尾添加换行符
示例代码:
# include<stdio.h>
void putl(const char * string);
void putl(const char * string)
while (* string != \'\\0\')
putchar(*string++);
注意:
- 因为传入的参数是指针,且不会修改里面的值,所有用
const
修饰符修饰 - 另一种表达式写法
while(*string)
-> 当string
指向空字符时,*string
的值是0
,测试条件为假
设置一个用户自定义输出,输出字符串当中的字符数:
示例代码:
/*
* @Author: Lucifer
* @Data: 2023-05-28 23:55:58
* @LastEditors: Lucifer
* @LastEditTime: 2023-05-29 00:09:57
* @Description:
*/
# include<stdio.h>
void put_div(const char * string);
int put_count(const char * string);
int main(void)
put_div("If I\'d as much money");
put_div(" as I could spend,\\n");
printf("I count %d characters.\\n");
put_count("I never would cry old chairs to mend.");
getchar();
return 0;
void put_div(const char * string)
while(*string) // 遇到空字符时测试条件为假
putchar(*string++);
int put_count(const char * string)
int count = 0;
while (*string)
putchar(*string++);
count++;
putchar(\'\\n\');
return (count);
c语言中如何输入输出字符串
用puts(),get()
在C语言中,输入输出字符串有以下两种方式:
1 用scanf/printf输入输出。
scanf/printf是C语言的格式化输入输出函数,可以用于输入输出各种基础类型,字符串(char*)也
其支持范围内。
格式化字符为%s。
定义
char str[100];
输入
scanf("%s",str);
输出
printf("%s",str);
2 C语言还支持专门的字符串输入输出函数:gets/puts。
gets的作用为,读入一行输入,并将读到的换行符替换为字符串结束符。
puts的作用为,将字符串单行输出,即输出字符串内容后,会自动在结尾增加换行。
定义
char str[100];
输入
gets(str);
输出
puts(str);
扩展资料:
起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。
这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。
K&R C主要介绍了以下特色:
结构体(struct)类型
长整数(long int)类型
无符号整数(unsigned int)类型
把运算符=+和=-改为+=和-=。因为=+和=-会使得编译器不知道使用者要处理i = -10还是i =- 10,使得处理上产生混淆。
即使在后来ANSI C标准被提出的许多年后,K&R C仍然是许多编译器的最 准要求,许多老旧的编译器仍然运行K&R C的标准。
1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。
1983年,美国国家标准协会(ANSI)成立了一个委员会X3J11,来制定 C语言标准。
1989年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-1989 "Programming Language C"。因为这个标准是1989年通过的,所以一般简称C89标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。
1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C89标准定为C语言的国际标准,命名为ISO/IEC 9899:1990 - Programming languages -- C 。
因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C89标准,因为此标准与ANSI C89标准完全等同。
1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C89标准修订版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人简称为C94标准。
1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C89标准修订版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity [7] ,有些人简称为C95标准。
参考资料:百度百科-c语言
参考技术A在<string.h>头文件中用字符串处理函数输入和输出,gest用来输入,puts用来输出。
字符串输入函数gets,从键盘键入以回车结束的字符串放入字符数组中,并自动加’\\0'。输入串长度应小于字符数组维数,字符串中可以包含空格。
字符串输出函数puts,向显示器输出字符串(输出完,自动换行,即用'\\n'替'\\0')。字符数组必须以'\\0'结束。
示例代码如下:
#include<string.h>
int main()
char str[40];
printf("请输入字符串");
gets(str);
printf("请输出字符串");
puts(str);
system("pause");
return 0;
扩展资料:
在C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作。
流式文件操作,这种方式的文件操作有一个重要的结构FILE,FILE在头文件stdio.h中定义如下:
typedef struct
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char _FAR *buffer; /* Data transfer buffer */
unsigned char _FAR *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
FILE; /* This is the FILE object */
直接I/O文件操作,这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,此类文件操作常用的函数及其所用的一些符号在io.h和 fcntl.h中定义,在使用时要加入相应的头文件。
参考资料:
百度百科——puts
百度百度——gets
1、字符串数组输入输出字符串:
char s1[]="array"; //字符数组
char s2[6]="array"; //数组长度=字符串长度+1
printf("%s,%c\\n",s1,s2[2]);
2、字符串指针输入输出字符串:
char *sp="pointer"; //字符指针
printf("%s,%c,%c\\n",sp,*sp,*(sp+2));
3、指针和scanf函数共同输入输出字符串:
char s1[6];
scanf("%s\\n",s1);
printf("%s,%c\\n",s1,s1[2]);
4、指针+数组+scanf 输入输出字符串:
char str[60], *sp=str;//将数组的首地址str赋给指针变量spscanf("%s\\n",sp);
printf("%s,%c,%c\\n",sp,*sp,*(sp+3));
printf("%s,%c,%c\\n",str,str[0],str[3]);
扩展资料
C语言字符串及基本构成:
1、数组:如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
2、指针:如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一。
3、字符串:C语言的字符串其实就是以'\\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件<string.h>。
参考资料:百度百科—C语言
参考技术C在C语言中,输出字符串的函数有两个:
puts():直接输出字符串,并且只能输出字符串。
printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。
这里不妨再演示一下,请看下面的代码:
#include <stdio.h>
int main()
int i;
char str[] = "http://c.biancheng.net";
printf("%s\\n", str); //通过变量输出
printf("%s\\n", "http://c.biancheng.net"); //直接输出
puts(str); //通过变量输出
puts("http://c.biancheng.net"); //直接输出
return 0;
运行结果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
在 printf() 函数中使用%s
输出字符串时,在变量列表中给出数组名即可,不能写为printf("%s", str[]);字符串的输入
在C语言中,输入字符串的函数有两个:
scanf():通过格式控制符 %s 输入字符串。除了字符串,scanf() 还能输入其他类型的数据。
gets():直接输入字符串,并且只能输入字符串。
扩展资料
函数应用
1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’
3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
5. 求字符串长度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串长度用 len(s)例: len("abc12")=5
6. 搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.
例:pos(‘ab’,’12abcd’)=3
7. 字符的大写转换。Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’
8. 数值转换为数串。 过程 Str(x,s) 把数值x化为数串s.
例:str(12345,s); 结果s=’12345’
9. 数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字符的序数,第三个参数也可不传
例:val(‘1234’,x,I);结果 x:=1234
参考资料来源:百度百科:字符串
参考技术DC语言中输入输出字符串的函数如下:
在C语言中,输出字符串的函数有两个:
1、puts():直接输出字符串,并且只能输出字符串。
2、printf():通过格式控制符 %s 输出字符串。除了字符串,printf() 还能输出其他类型的数据。
在C语言中,输入字符串的函数有两个:
1、scanf():通过格式控制符 %s 输入字符串。除了字符串,scanf() 还能输入其他类型的数据。
2、gets():直接输入字符串,并且只能输入字符串。
扩展资料:
输出字符串的例子:
#include <stdio.h>
int main()
int i;
char str[] = "http://c.biancheng.net";
printf("%s\\n", str); //通过变量输出
printf("%s\\n", "http://c.biancheng.net"); //直接输出
puts(str); //通过变量输出
puts("http://c.biancheng.net"); //直接输出
return 0;
运行结果:
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
http://c.biancheng.net
在 printf() 函数中使用%s输出字符串时,在变量列表中给出数组名即可,不能写为printf("%s", str[]);。
参考资料:
百度百科-c语言
以上是关于C字符串输出的主要内容,如果未能解决你的问题,请参考以下文章