字符串操作单字符删除字符串操作单字符删除
2( 字符串操作(特别,单字符删除的两种算法) 2-1输入一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"
变成"b"。
#include
void main()
{ char c;
c=getchar();
if(______1______) // c>='a'&&c='v' && c
#include
void fun(char *s,char *t)
int i,sl; {
sl=strlen(s);
for(i=0;i
#includ...
字符串操作单字符删除
2( 字符串操作(特别,单字符删除的两种算法) 2-1输入一个小写字母,将字母循环后移5个位置后输出。例如:"a"变成"f","w"
变成"b"。
#include
void main()
{ char c;
c=getchar();
if(______1______) // c>='a'&&c<='u'
c=c+5;
else
if (c>='v' && c<='z')
______2______ // c=(c-'a'+5)%26+'a'; 或 c=c-21; 或 c=c+5-26;
putchar(c);
}
2-2输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字
符串中的字符按逆序连接到字符串t后面。例如:输入"ABCD",则字符串t为"ABCDDCBA"。PP2
#include
#include
void fun(char *s,char *t)
int i,sl; {
sl=strlen(s);
for(i=0;i设计程序:计算字符串s中每个字符的权重值,所谓权重值就是字符在字符串
中的位置值与该字符的ASCII码值的乘积。位置值从1开始依此递增。将每个字
符的权重值,以格式"%d "写入到源程序目录中Paper子目录下的新建文件design.dat中。
#include
#include
void main()
{ FILE *p; int i,w;
char *s="we45*&y3r#$1";
/*考生在这里添加代码*/
p=fopen("design.dat","w");
for (i=0;s[i]!='\0';i++)
{ w=(i+1)*s[i];
fprintf( p,"%d ",w);
}
fclose(p);
}
2-4调用find函数在输入的字符串中查找是否出现"the"这个单词。如果查到返回出
现的次数,如果未找到返回0。【本解在判断源串里当前连续三个字符是否为
"the"这个单词采用了查找算法】
#include
int find(char *str)
{ char *fstr="the";
int i=0,j,n=0;
while (str[i]!='\0') 【注:while (str[i+2]!='\0') 更佳】
{
for(______1______) // j=0; j<3; j++
if (str[j+i]!=fstr[j]) break;
if (______2______) n++; // j>=3 或者 j = = 3
i++;
}
return n;
}
void main()
{ char a[80];
gets(a);
printf("%d",find(a));
}
【注:以下为单字符删除。出现两种算法。一是使用strcpy做子串覆盖,二是逐个
保留新串的字符】
2-5调用函数f,从字符串中删除所有的数字字符。 #include
#include
#include
void f(char *s)
{ int i=0;
while(s[i]!='\0'){
if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy
___2___ i++;} // else }
void main()
{ char str[80];
gets(str); f(str); puts(str);
}
2-6将字符串s中所有的字符'c'删除。
#include
void main()
{ char s[80];
int i,j;
gets(s);
for(i=j=0; ______1______; i++) // s[i] != '\0'
if(s[i] != 'c') { s[j]=s[i];
______2______ // j++;
}
s[j]='\0';
puts(s);
}
2-7输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。
#include
#include void main()
{ char str[256];
int i,j,k=0,n;
gets(str);
n=strlen(str);
for(i=0;i'z') // if (tolower(str[i])>='a' &&
tolower(str[i])<='z')
{
/********2********/
str[n]=str[i]; n++; // str[k]=str[i]; k++;
}
str[k]='\0';
printf("%s\n",str);
本文档为【字符串操作单字符删除】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。