#include
void NONO();
int fun(char *s)
{
int n=0;
char *p;//很重要。
for(p=s;*p!='\\0';p++)//全局变量p扫描了整个字符串;
if((*p>='0')&&(*p<='9'))
n++;
return n;
}
main()
{ char *s="2def35adh25 3kjsdf 7/kj8655x";
printf("%s\\n",s);
printf("%d\\n",fun(s));
NONO();
}
2.确定单词的个数。查找指定的字符。
#include
#include
#define N 80
int fun(char *s)
{
int flag=0;
int num=0;
char *p;
for(p=s;*p!='\\0';p++)//还是和上面的一样,遍历全部的内容哦。
if(*p==' ') flag=0;
else if(flag==0)
{
flag=1;
num++;
}
return num;
}
void main()
{
FILE *wf;
char line[N];
int num=0;
printf("Enter a string:\\n ");
gets(line);
num=fun(line);
printf("The number of word is:%d\\n\\n ",num);
3.字符串的逆置
#include
#include
#include
#define N 81
void fun(char*s)
{
char ch;
int i,m,n;
i=0;
m=n=strlen(s)-1;
/*将第i个和倒数第i个数互换,但循环的次数为数组长度的一半*/
while(i<(n+1)/2)
{
/*使用中间变量叫唤*/
ch=s[i];
s[i]=s[m];
s[m]=ch;
i++; m--;//算法,第一个和最后一个换。
}
main()
{
char a[N];
FILE *out;
printf("Enter a string:");
gets(a);
printf("The original string is:");
puts(a);
fun(a);
printf("\\n");
printf("The string after modified:");
puts(a);
strcpy(a,"Hello World!");
fun(a);
/******************************/
out=fopen("out.dat","w");
fprintf(out,"%s",a);
fclose(out);
/******************************/
}
4.字符串的连接
#include
#define N 20
void NONO();
void fun( char *a , char *s)
{
while(*s!='\\0')
{ *a=*s;
a++;
s++;
}
*a='\\0';
}
main()
{ char s1[N], *s2="abcdefghijk";
fun( s1,s2);
printf("%s\\n", s1);
printf("%s\\n", s2);
NONO();
}
要将s所指的字符串存入a所指的字符串中,程序要求不能使用系统提供的字符串函数,本题可以使用循环语句,依次取出a所指字符串中的元素,将其存入s所指的字符串中,最后为s所指的字符串添加结束标识'\0'。
5。
连接aa,bb,ccc;
#include
#include
#define M 3
#define N 20
void fun(char a[M][N],char *b)
{
int i,j,k=0;
for(i=0;i
6.連接函數
、、、cpp
include
include
void mystrcat(char[], char[]);
int main()
{
char c1[80];
char c2[80];
gets(c1);
gets(c2);
mystrcat(c1,c2);
puts(c1);
return 0;
}
void mystrcat(char dst[], char str[])
{
int i,j;
j=strlen(dst);
for(i=0;i
dst[j]='\\\\0';
}
5结构体求单项平均值。
```cpp
#include
#define N 8
typedef struct
{ char num[10];
double s[N];
double ave;
} STREC;
void fun(STREC *a)
{
int i;
a->ave=0.0;
for(i=0;iave=a->ave+a->s[i]; /*求各门成绩的总和*/
a->ave/=N; /*求平均分*/
}
main()
{ STREC s={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
int i;
void NONO ( );
fun( &s );
printf("The %s's student data:\\n", s.num);
for(i=0;i
6.结构体排序
#include
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
void fun( STREC a[] )
{
int i,j;
STREC t;
for(i=1;i
7.结构体排序//并传入数组;
#include
#define N 8
typedef struct
{ char num[10];
double s;
} STREC;
double fun( STREC *a, STREC *b, int *n )
{
int i,j=0;
double av=0.0;
for(i=0;ih[j].s) {t=h[i] ;h[i]=h[j]; h[j]=t;}
for(i=0;i
8
#include
#include
#include
#include
#define N 10
typedef struct ss
{ char num[10];
int s;
} STU;
fun(STU a[], STU *s)
{
int i;
*s=a[0]; /*先认为第1个值最小*/
for(i=0;is>a[i].s)
*s=a[i];
}
void main()
{
FILE *wf;
STU a[N]={{ "A01",81},{ "A02",89},{ "A03",66},{ "A04",87},{ "A05",77},
{ "A06",90},{ "A07",79},{ "A08",61},{ "A09",80},{ "A10",71}},m;
int i;
system("CLS");
printf("*****The original data*****\\n");
for(i=0;i