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

参考技术B

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

参考资料来源:百度百科:字符串

参考技术D

C语言中输入输出字符串的函数如下:

在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字符串输出的主要内容,如果未能解决你的问题,请参考以下文章

c语言字符串数组怎么输入和输出呢

c中如何输出一个字符的ASCII码

用C语言写 字符串逆序输出

C语言:输入一个字符串,然后逆序输出

c语言如何删除输出的最后的一个字符?

c语言字符串逆序输出。