C语言程序

大哥,这几个程序还是要编好完保存好了的,一共是五道,就依照次续用a b c d e命名,然后发到我的邮箱[email protected] 小弟不吝惜分数,只要你编好再奉送80分!
二、编程题
1 写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

2 写一个函数,实现两个字符串的比较,即自己写一个strcmp 函数:strcmp(s1,s2)
如果s1=s2,返回值为0,如果s1≠s2, 返回值他们二者第一个不同字符的ASCII码差值;如果s1>s2,则输出正值;如果s1<s2则输出负值。
main()
{ int m;
char str1[20],str2[20],*P1,*P2;
scanf(“%s”,str1);
scanf(“%s”,str2);
p1=str1;
p2=str2;
m=strcmp(p1,p2);
printf(“the result is :%d” m);
}
strcmp(char *p1, char *p2)
{int i=0;
while (*(p1+i) == *(p2+i)) {
if (【 】) return 0;
i++;
}
return(*(p1+i) -*(p2+i);
}

3 在主函数中输入3个等长的字符串。用另一个函数对它们排序。然后在主函数输出这3个已排好序的字符串。

4 输入一行文字,找出其中大写字母、小写字母、空格、数字及其它字符各有多少?

5. 编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开始
间隔地输出该字符串,请用指针完成。

第1个回答  2009-12-27
#include<stdio.h>
int slen(char *p)
{
int i=0;
while(p[i]) i++;
return i;
}
void main()
{
char ch[100];
int len;
printf("Input a string:");
gets(ch);
len=slen(ch);
printf("%d\n",len);
}

2
#include<stdio.h>
main()
{ int m;
char str1[20],str2[20],*P1,*P2;
scanf("%s",str1);
scanf("%s",str2);
p1=str1;
p2=str2;
m=strcmp(p1,p2);
printf("the result is :%d" m);
}
strcmp(char *p1, char *p2)
{int i=0;
while (*(p1+i) == *(p2+i)) {
if (【 *(p1+i)=='\0' 】) return 0;
i++;
}
return(*(p1+i) -*(p2+i);
}
3,
#include<stdio.h>
void fun(char *p )
{int i,j;char c;
for(i=0;*(p+i+1);i++)
for(j=i+1;*(p+j);j++)
if(*(p+i)>*(p+j)){c=*(p+i);*(p+i)=*(p+j);*(p+j)=c;}
}

main()
{
char str1[80],str2[80],str3[80];
printf("Input string:\n");
scanf("%s",str1);
scanf("%s",str2);
scanf("%s",str3);
fun(str1);
fun(str2);
fun(str3);
puts(str1);
puts(str2);
puts(str3);
}

4#include <stdio.h>
void main()
{
int digit=0,letter1=0,letter2=0,space=0,other=0,i;
char s[80];
printf("Enter a string:");
gets(s);
for(i=0;s[i]!='\0';i++)
{ if(s[i]>='a'&&s[i]<='z' ) letter1++;
else if( s[i]>='A'&&s[i]<='Z') letter2++;
else if(s[i]>'0'&&s[i]<'9') digit++;
else if(s[i]==' ') space++;
else other++; }

printf("数字有:%d个,大写字母有:%d个,小写字母有:%d个,空格:%d个,其它符号有:%d个\n",digit,letter2,letter1,space,other); }
5
#include<stdio.h>
main()
{
char str[20],*p="computer";
int i;
for(i=0;*(p+i);i++)
str[i]=*(p+i);
str[i]='\0';
for(i=0;*p;i++)
printf(" %c ",*p++);
printf(" \n ");
}
第2个回答  2009-12-27
1.
//---------------------------------------------------------------------------

#include <stdio.h>

int len(const char *str)
{
int i=0;
while (str[i])
++i;
return i;
}
int main(void)
{
char st[80];
gets(st);
printf("%d\n",len(st));
return 0;
}
//---------------------------------------------------------------------------

2.
if (!p1[i]) return 0;

3.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

void strarrsort(char s[][80],int n)
{
qsort(s,n,sizeof(char)*80,strcmp);
}
int main(void)
{
char str[3][80];
int i;
for (i = 0; i<3; i++) {
scanf("%79s",str[i]);
}
strarrsort(str,3);
for (i = 0; i<3; i++) {
puts(str[i]);
}
return 0;
}
//---------------------------------------------------------------------------

4.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <ctype.h>

int main(void)
{
char ch;
int up=0,lo=0,nu=0,ot=0;
while ((ch=getchar())!='\n')
if (islower(ch)) lo++;

else if (isupper(ch)) up++;

else if (isdigit(ch)) nu++;

else ot++;
printf("大字字母:%d\n小写字母:%d\n数字:%d\n其它字符:%d\n",up,lo,nu,ot);
return 0;
}
//---------------------------------------------------------------------------

5.
//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
char str[]="computer",*sp=str;
while (*sp) putchar(*sp++);
return 0;
}
//---------------------------------------------------------------------------
第3个回答  2009-12-27
呵呵,刚看到哦,抓紧写了下,分a,b,c,d,e5个文件,都是以.c文件保存的。
c语言实现的。
另外我把运行结果也截图发给你了。
如果有问题的话,hi我~
刚发现b文件中
main多写了个b,也就是
mainb改成main().来自:求助得到的回答本回答被提问者采纳
第3个回答  2009-12-27
发了 126邮箱 有问题hi我
相似回答