金陵科技学院实验报告
int i,k=0; } main() {
char a[N],ch;
printf(\请输入一组字符串:\gets(a);
for(i=0;s[i]!='\\0';i++) {
if(s[i]!=c) {
s[k++]=s[i];
}
}s[k]='\\0';
printf(\请输入删除的字符ch:\ }
scanf(\fun(a,ch);
printf(\删除字符%c后的字符串为:%s\\n\
五、实验体会(遇到问题及解决办法,编程后的心得体会)
(1)功能:请编写函数void fun(char (*s)[N], char *b),将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。
例如:二维数组中的数据为: W W W W S S S S H H H H
则字符串中的内容应是:WSHWSHWSHWSH。
#include
void fun(char (*s)[N], char *b) {
int i,j,k=0;
33
金陵科技学院实验报告
for(j=0;j for(i=0;i b[k++]=s[i][j]; } } b[k]='\\0'; } main() { char a[100],b[M][N]={{'W','W','W'},{'S','S','S'},{'H','H','H'}}; int i,j; printf(\原始数据是\\n\ for(i=0;i for(j=0;j printf(\ } printf(\ } fun(b,a); printf(\字符串:\\n\ puts(a); } (2)功能:编写函数void fun(char str[],int i,int n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。 #include void fun(char str[],int i,int n) 34 金陵科技学院实验报告 { while(str[i+n-1]) { } str[i-1]='\\0'; } main() { char s[N]; int i,n; printf(\请输入一组字符串:\ gets(s); printf(\输入从第几个开始:\ scanf(\ printf(\输入删除几个字符:\ scanf(\ fun(s,i,n); printf(\从第%d开始删除%d后的字符串为:%s\\n\} str[i-1]=str[i+n-1]; i++; (3)功能:编写函数void fun(char *s,char t[]),将s所指字符串中除了下标为奇数、 同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如:若s所指字符串中的内容为:\,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:\。 #include 35 金陵科技学院实验报告 #define N 20 void fun(char *s,char t[]) { int i,j=0; for( i=0;s[i]!='\\0';i++) { if(i%2!=0&&(s[i]-'0')%2!=0) { t[j++]=s[i]; } } t[j]='\\0'; } main() { char a[N],b[N]; printf(\请输入一组字符串:\ gets(a); fun(a,b); printf(\下标为奇数且ASCII值也为奇数的字符:%s\\n\} (4) 功能:请编写函数int fun( char *s),统计一行字符串中单词的个数作为函数值返回。规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 #include #include int fun( char *s) { int n=1; while(*s!='\\0') 36