【C语言】字符串

您所在的位置:网站首页 c语言输出ascii码值 【C语言】字符串

【C语言】字符串

#【C语言】字符串| 来源: 网络整理| 查看: 265

1.统计字符串中元音字母的字数 2.使用起泡法和选择法将字符串按ASCII码值从小到大排列 3.将字符串中的数字字符倒置,即‘0’变‘9’、‘1’变‘8’、…、‘9’变‘0’.例如:字符串“a1b2c3d4e9f0”倒置变为“a8b7c6d5e0f9 4.将一个字符串中从第m个字符开始的全部字符复制成为另一个字符串 5.有10个字符串,每个字符串表示一段文字,将10个字符串连接成一篇文章,保存到一维数组并输出。 6.在全班50个学生的姓名中,查找指定姓名的学生,若找到则输出该学生姓名,否则输出无此人。 7.写一个函数,将两个字符串连接。 8.写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。

统计字符串中元音字母的字数

#include int main (void) { char str[128]={0};//给字符串数组初始化为一个空字符串 int count=0,i; printf("请输入一个字符串:\n"); gets(str); for (i=0;str[i]!=0;i++) if (str[i]=='a'|| str[i]=='e'|| str[i]=='i'|| str[i]=='o' || str[i]=='u') count++; printf("%d\n",count); return 0; }

使用起泡法和选择法将字符串按ASCII码值从小到大排列

#include #include int main (void) { char str[128]={0};//给字符串数组初始化为一个空字符串 int count=0,i,k; char temp;//设置中间变量 printf("请输入一个字符串:\n"); gets(str); //选择法排序 for(i=0;i char str[128]={0};//给字符串数组初始化为一个空字符串 int count=0,i,k,n; char temp;//设置中间变量 printf("请输入一个字符串:\n"); gets(str); n=strlen(str);//求字符串的长度 //起泡法排序 //一共进行n-1次比较 //分析:第1趟,进行n-1次比较(最后一次是n-2与n-1比较); //第2趟,进行n-2次比较(最后一次是n-3与n-2比较) for (i=1;i char str[128]={0}; int i; printf("请输入一个含有数字的字符数组:\n"); gets(str);//输入str for (i=0;str[i]!=0;i++) if (str[i]>=48 && str[i]0},str2[128]={0};//字符数组初始化为一个空字符串 //将要输出的字符串放到字符数组str2中 int m; int i,k=0; //输入数据 gets(str1); //输入字符串 scanf("%d",&m);//输入m //第m个字符串的下标为m-1 for (i=m-1;str1[i]!=0;i++)//依次将m个字符之后的字符“移到”str2中 { str2[k]=str1[i]; k++; } printf("%s\n",str2);//输出str2 return 0; }

一点改进: 前面几个程序都是利用循环输出的字符串,即对字符数组中的元素依次进行输出。(我当时的顾虑:因为定义的字符数组比较大,后面的全为“0”,可能0也会输出?) 但自己对“0”的理解不对,字符数组的“0”即是"\0"(字符串结束的标志),而不是字符’0‘; 所以由于前面定义时就对str2进行了初始化,使得str2中的每一个元素都是’\0‘,当对str2中的元素依次赋值,直到赋值结束,其后面的为赋值的位置都是’\0’,直接用printf()函数输出字符串即可。 有10个字符串,每个字符串表示一段文字,将10个字符串连接成一篇文章,保存到一维数组并输出。

#include #include int main (void) { char str[10][128]={0};//二维数组全部初始化为0 char str2[128]={0};//将最终连接好的文字放入一维数组 int i; //将二维数组看作是特殊的一维数组,分别是str[0]、str[1]…str[9] for (i=0;i0};//二维字符数组初始化 char name[128]={0};//要输入的名字 int i ,flag=0;//flag为标志量 for (i=0;i char str1[128]={0},str2[128]={0},str3[128]={0}; gets(str1); gets(str2); concatenate(str1,str2,str3); printf("%s\n",str3); return 0; } void concatenate(char str1[],char str2[], char str3[]) { int i,n,k=0; n=strlen(str1); for (i=0;str1[i]!=0;i++) str3[i]=str1[i]; for (i=n;str2[k]!=0;i++)//从第n个开始存放str2 { str3[i]=str2[k]; k++; } }

写一个函数,将一个字符串中的元音字母复制到另一个字符串中,然后输出。 ➰已知一个字符串str1,然后对该字符串中的每个元素依次判断是否是元音字母,如果是,依次存放到str2中。

#include #include void copy(char str1[],char str2[]); int main (void) { char str1[128]={0},str2[128]={0}; printf("Please input str1:\n"); gets(str1); copy(str1,str2);//数组名作为实参传递给形参 printf("%s\n",str2); return 0; } void copy(char str1[],char str2[]) { int i,k=0; for (i=0;str1[i]!=0;i++) if (str1[i]=='a'||str1[i]=='e'||str1[i]=='i'|| str1[i]=='o'||str1[i]=='u'||str1[i]=='A' ||str1[i]=='E'||str1[i]=='I'||str1[i]=='O'||str1[i]=='U') { str2[k]=str1[i]; k++; //如果是元音字母,放到str2中 //且移到下一个元素进行赋值 } }

使用字符串处理函数 1.puts函数——输出字符串的函数 下面编写一个简单的程序:

#include int main (void) { char str[128]={"helloword"}; puts(str);//用puts函数输出字符串"helloworld" return 0; }

运行结果如下: 在这里插入图片描述 用printf()函数输出:

#include int main (void) { char str[128]={"helloword"}; printf("%s",str); return 0; }

运行结果如下: 在这里插入图片描述

用puts函数在输出时,将字符串结束标志’\0’转换成’\n’,即输出完字符串后换行。 相当于printf(“helloword\n”) 即:

#include int main (void) { char str[128]={"helloword"}; printf("%s\n",str); return 0; }

在这里插入图片描述 由于可以用printf()函数输出字符串,因此puts函数用得不多。 2.gets函数——输入字符串的函数 gets函数的作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。

char str[128]={0}; gets(str);

从键盘输入:

computer

gets函数将从键盘读入的“computer”送入字符数组中。 3.strcat——字符串连接函数 其作用是把两个字符数组中的字符串连接起来,把字符串2接到字符串1的后面,结果放在字符数组1中。 说明: 字符数组1必须足够大,以便容纳连接后的字符串。 连接前两个字符串的后面都有’\0’,连接时将字符串1后面的‘\0’取消,只在新字符串最后面保留’\0’。 4.strcpy——字符串复制函数 5.strcmp——字符串比较函数 其作用是比较字符串1和字符串2。 字符串比较的原则是,将两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或者‘\0’为止。 如全部字符相同,则认为两个字符串相等; 若·出现不相同的字符,则以第一对不相同的字符的比较结果为准。

不断持续补充……



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3