首页 热点资讯 义务教育 高等教育 出国留学 考研考公

c语言中如何输入输出字符串

发布网友 发布时间:2022-04-19 19:17

我来回答

9个回答

热心网友 时间:2023-01-19 05:20

在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语言标准。

19年,美国国家标准协会(ANSI)通过了C语言标准,被称为ANSI X3.159-19 "Programming Language C"。因为这个标准是19年通过的,所以一般简称C标准。有些人也简称ANSI C,因为这个标准是美国国家标准协会(ANSI)发布的。

1990年,国际标准化组织(ISO)和国际电工委员会(IEC)把C标准定为C语言的国际标准,命名为ISO/IEC 99:1990 - Programming languages -- C  。

因为此标准是在1990年发布的,所以有些人把简称作C90标准。不过大多数人依然称之为C标准,因为此标准与ANSI C标准完全等同。

1994年,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C标准修订版,名叫ISO/IEC 99:1990/Cor 1:1994,有些人简称为C94标准。

1995年,国际标准化组织(ISO)和国际电工委员会(IEC)再次发布了C标准修订版,名叫ISO/IEC 99:1990/Amd 1:1995 - C Integrity [7]  ,有些人简称为C95标准。

参考资料:百度百科-c语言

热心网友 时间:2023-01-19 06:38

在<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

热心网友 时间:2023-01-19 08:12

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语言

热心网友 时间:2023-01-19 10:04

在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

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

热心网友 时间:2023-01-19 12:12

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语言

热心网友 时间:2023-01-19 14:36

puts()和gets()都是数组函数,输入或输出前要定义数组
例如:
char a[50];
gets(a);
puts(a);
就是一个简单的输入后再将输入的东西输出,puts()的输入和printf的输出是有一定的区别的,puts()遇到‘\0'就终止,而用printf则不会这样。
例如:
char a[50];
gets(a);
puts(a);
printf("%s",a);
如果正好输入50个字符,则两次输出一致。但如果输入字符不足50个,puts()输出输入的全部字符,而没有输入的不输出,而printf则不能识别'\0',所以会出现乱码。

热心网友 时间:2023-01-19 17:18

puts()和gets()函数
1. puts()函数
puts()函数用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为:
puts(s);
其中s为字符串变量(字符串数组名或字符串指针)。
puts()函数的作用与语printf("%s\n", s)相同。
例4:
main()
{
char s[20], *f; /*定义字符串数组和指针变量*/
strcpy(s, "Hello! Turbo C2.0"); /*字符串数组变量赋值*/
f="Thank you"; /*字符串指针变量赋值*/
puts(s);
puts(f);
}

说明:
(1). puts()函数只能输出字符串, 不能输出数值或进行格式变换。
(2). 可以将字符串直接写入puts()函数中。如:
puts("Hello, Turbo C2.0");

2. gets()函数
gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符
不属于这个字符串。其调用格式为:
gets(s);
其中s为字符串变量(字符串数组名或字符串指针)。
gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s)
函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,
空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符
串直到回车为止。
例5
main()
{
char s[20], *f;
printf("What's your name?\n");
gets(s); /*等待输入字符串直到回车结束*/
puts(s); /*将输入的字符串输出*/
puts("How old are you?");
gets(f);
puts(f);
}

参考资料:http://zhidao.baidu.com/question/16672631.html?si=1

热心网友 时间:2023-01-19 20:16

C语言中字符串的输入和输出主要有两种方式:
输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a);
输入使用:gets(b);对应的输出使用:puts(b);
参考代码:

热心网友 时间:2023-01-19 23:30

//小白写程序
//输入一行字符串,分别统计出其中英文字符、空格、数字、和其他字符

#include <stdio.h>

int main()
{
    char *p = "abc ABC 123 !@# ";            //字符串用char类型
    int a = 0, b = 0, c = 0, d = 0; 
    //a为大小写字母,b为空格,c为数字,d为其他字符并赋初值0;    
    while(*p != '\0')                        //判断是否循环结束
    {
        if((*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <= 'Z'))
        // 判断字母
            a++;
        //统计字母个数
        else if(*p == ' ')
        //判断是否为空格
            b++;
         //统计空格个数
        else if(*p >= '0' && *p <= '9')
        //判断是否为数字
            c++:d
        //统计数字个数
        else
        //其他特殊字符
            d++;
        //统计特殊字符个数
        *p++;            //判断字符串的下一个是什么
    }
    printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com