gets()、puts()函数。字符串函数。字符串排序的例子。

1、实例程序:string.c的程序:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

#include<stdio.h>

#define MSG "YOU MUST have many talents .tell me some."

#define LIM 5

#define LINELEN 81

int main()

{

char name[LINELEN];

char talents[LINELEN];

int i;

const char m1[40]="limit yourself to one line‘s worth.";

const char m2[]="IF you can‘t think of your anything,fake it.";

const char*m3="\nENough about me,what‘s your name?";

const char *mytal[LIM]={"adding numbers swiftly","mulityplying accurately","stashing data","flowing instructions to the letter","understanding C language"};//初始化一个字符串指针数组

printf("hi , i‘m clyde the computer." "i have many talents.\n");

printf("let me tell you some talents.\n");

puts("what were they?");

for (i=0;i<LIM;i++)

puts(mytal[i]);

puts(m3);

gets(name);

printf("well, %s,%s\n",name,MSG);

printf("%s \n %s\n",m1,m2);

gets(talents);

puts("let me see if i have got that  list:");

puts(talents);

printf("thanks for the information .%s.\n",name);

return 0;

}

运行结果:

从中可以看出:定义字符串的方法有:使用字符串常量、char 数组、char指针、字符串数组、

2、把字符串看做指针:

实例程序:


1

2

3

4

5

6

#include<stdio.h>

int main()

{

printf("%s,%p,%c\n","we","are",*"spare farers");

return 0;

}

%s 格式输出字符串“we”,%p格式产生一个十六进制的地址,因此如果“are”是个地址,那么%p应该输出字符串中第一个字符的地址。最后


1

*"spare farers"应该产生所指向的地址中的值,即字符串*"spare farers"的第一个字符。

3、strlen() 得到字符串的长度,缩短字符串函数

示例程序:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

#include<string.h>

void fit(char *,unsigned int);

int main(void)

{

char mesg[]="Hold on to your heads,hackers.";

puts(mesg);

fit(mesg,7);

puts(mesg);

puts("let‘s look at some more of the string.");

puts(mesg+8);

return 0;

}

void fit (char *string,unsigned int size)

{

if(strlen(string)>size)

*(string+size)=‘\0‘;

}

运行结果:

fit()函数在数组的第8个元素中放置了一个


1

‘\0‘,代替原有的空格字符,put函数输出时停在了第一个空格符处。忽略数组的其他元素,然而数组的其他元素仍然存在,mesg+8表示mesg[8]即‘t‘字符的地址,因此puts函数继续输出,直到遇到原字符串中的空字符。

4、strcat()代表(string concatenation)函数.函数接受两个字符串参数,它将第二个字符串的一份拷贝添加到第一个字符串的串尾,从而使第一个字符串称为一个新组合的字符串,第二个字符串并没有改变。该函数是char* 类型(指向char的指针),这个函数返回它的第一个参数的值,即其后添加了第二个字符串的那个字符串第一个字符的地址。板面的做法和配料

实例程序:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<stdio.h>

#include<string.h>

#define size 80

int main()

char flower[size];

char addon[]="s smell like old shoes,";

puts("what‘s your favorite flowes?");

gets(flower);

strcat(flower,addon);

puts(flower);

puts(addon);

return 0;

}

运行结果:

5、strncat()函数,strcat函数并不检查第一个数组是否能够容纳的下第二个字符串。如果没有给第一个数组分配足够的空间,多出来的字符溢出到相邻的存储单元时就会出问题。此时用strncat()函数。这个函数需要另外的一个参数来指明最多允许添加的字符的数目,例如strncat(bugs,addon,13),函数把addon中的内容添加到bugs上,直到加到13个字符或者遇到空字符为止。

6、strcmp()函数。用户的响应和一个已有的字符串进行比较。代表(string comarison)strcmp(a,b),如果两个字符串的参数相同,则返回值为0.比较的是字符串,而不是数组。用于比较字符串而不是字符。

等等。

7、一个字符串排序的例子

我们来看一个把字符串按照字母表进行排序的例子。主要用到strcmp()

示例程序:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

#include<stdio.h>

#include<string.h>

#define size 81

#define lim 20

#define halt " "//用空字符终止输入

void start(char *string[],int num);//字符串排序函数

int main(){

char input[lim][size];

char *ptstr[lim];

int ct=0;

int k;

printf("input up to %d lines,and i will sort them.\n",lim);

printf("to stop.press the enter key at a lines start\n");

while (ct<lim&& gets(input[ct])!=NULL&&input[ct][0]!=‘\0‘)

{

ptstr[ct]=input[ct];

ct++;

}

start(ptstr,ct);

puts("\n here the soreted list:\n");

for(k=0;k<ct;k++)

puts(ptstr[k]);

return 0;

}

void start(char *string[],int num)

{

char *temp;

int top,seek;

for (top=0;top<num-1;top++)

for(seek=top+1;seek<num;seek++)

if(strcmp(string[top],string[seek])>0)

{

temp=string[top];

string[top]=string[seek];

string[seek]=temp;

}

}

运行结果:

时间: 2024-12-23 18:51:40

gets()、puts()函数。字符串函数。字符串排序的例子。的相关文章

第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all; Select 列 into 新表;字符串函数;日期函数

第17课-数据库开发及ado.net 聚合函数,模糊查询like,通配符.空值处理.order by排序.分组group by-having.类型转换-cast,Convert.union all;  Select 列 into 新表;字符串函数;日期函数 SQL聚合函数 MAX(最大值).MIN(最小值).AVG(平均值).SUM(和).COUNT(数量:记录的条数) 聚合函数对null不计算.如果一行数据都是null,count(*)包含对空值行.重复行的统计. --聚合函数演示 selec

SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换、函数转换

create database lianxi831  --创建数据库gouse lianxi831  --引用数据库gocreate table xs  --插入表格( code int not null,  --写入内容 name varchar(10), cid varchar(18), banji varchar(10), yufen decimal(18,2), shufen decimal(18,2), yingfen decimal(18,2),)goinsert into xs v

0831 模糊查询,排序查询,聚合函数,时间日期函数,数学函数,字符串函数

create database lianxi0720gouse lianxi0720gocreate table student( code int not null,--学号,不可为空 name varchar(10),--学生姓名 sex varchar(10),--性别 banji varchar(10),--班级 yufen decimal(18,2),--语文分数 shufen decimal(18,2),--数学分数 yingfen decimal(18,2),--英语分数)go--

C Primer Plus (第五版) 第十一章 字符串和字符串函数 编程练习

第十一章 字符串和字符串函数 编程练习 设计并测试一个函数,可以输入读取n个字符(包括空格.制表符.换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递. #include <stdio.h> #define LEN 80 char * getch(char a[], int n); int main(void) { char a[LEN]; if (getch(a, 4)) puts(a); else printf("没有读取\n"); return 0; }

字符串与字符串函数

定义字符串的方法:1.字符串常量2.char数组 //这种方法数组名会看作首元素的地址的同义词,不可用++,增量运算符只能用于变量名前. 2.可以用*(head+1)这种格式 3.数组元素是变量,数组名是地址常量3.cahr指针 //是一个指针,是变量4.字符串数组 举例:char character[23]= "fsdfdsf" "sdfdf";这是可以的 //把字符串看作指针#include<stdio.h>int main(void){ print

前端学PHP之字符串函数

前面的话 字符串的处理和分析在任何编程语言中都是一个重要的基础,往往是简单而重要的.信息的分类.解析.存储和显示,以及网络中的数据都需要操作字符串来完成.尤其在web开发中更为重要,程序员大部分工作都是在操作字符串,本文将详细介绍php中的字符串函数 [注意]关于javascript中字符串的属性和方法移步至此 特点 因为php是弱类型语言,所以其他类型的数据一般都可以直接应用于字符串操作函数中,而自己转换成字符串类型进行处理 echo substr( "1234567", 2, 4

Mysql字符串函数FIND_IN_SET()的两点用法

概要:该可以查询用逗号分割的字段,以及对结果进行强制排序 首先看一张表: colid vyear area cast ,31,32,21,12 2014 1 15 ,32,33,34,35,21, 2014 2 16 ,33,34,36,39,40 2011 3 17 表中的colid字段的值是以逗号分割, 当我们需要查询这张表中,colid含有32的行, 那么可以用FIND_IN_SET() SQL如下: SELECT * FROM table WHERE FIND_IN_SET('32',

20151009字符串函数

select *from car--like 模糊select top 3 *from car where name like '宝马%' --like '%%' 模糊查询 %%代表什么可以有字符,后面也可以有任何字符select top 3 *from car where name like '宝马_' --代表宝马可以有一个字符select top 3 *from car where name like '宝马[1-9]_' --代表‘宝马’后面第一个字符为1-9的数字select top

c#编程基础之字符串函数

c#常用的字符串函数 例一: 获取字符串的大小写函数 ToLower():得到字符串的小写形式 ToUpper():得到字符串的大写形式 注意: 字符串时不可变的,所以这些函数都不会直接改变字符串的内容,而是把修改后的字符串通过函数返回值的形式返回. 源码如下: using System; using System.Collections.Generic; using System.Text; namespace 字符串函数学习 { class Program { static void Mai