求C语言程序,高手请进...

1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串
原字母 对应字母
A Z
B Y
C X
D W

X C
Y B
Z A

2.删除字符串中的字符
输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。要求定义并调用函数delchar(s,c),它的功能是将字符串中的出现的所有c字符删除
输入输出示例
Input a string: happy new year
Input a char: a
After deleted, the string is: hppy new yer

3.字符串复制。输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s。要求用字符指针定义并调用函数strmcpy(s,t,m),它的功能是将字符串t中从第m个字符开始的全字符复制到字符串s中。
输入输出示例
Input a string: happy new year.
Input an integer: 7
Output is: new year.

4.编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串。如”XYZYX”和”xyzyx”,都是“回文”。
输入输出示例:
第一次运行:
Input a string: abcddcba
YES
第二次运行:
Input a string:abcddcb
NO

5.输入一行文字,统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。

输入输出示例:
Input a string: bFaE3+8=1 B
大写字母的个数为:3
小写字母的个数为:2
空格的个数为:1
数字的个数为:3
其他字符的个数为:2

/*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串
原字母 对应字母
A Z
B Y
C X
D W

X C
Y B
Z A*/

/*#include <stdio.h>
void main()
{
char str[80];
char a;
int i=0;
scanf("%c",&a);
while(a!='\n')
{
if(a>='A'&&a<='Z')
str[i++]='A'+'Z'-a;
else
str[i++]=a;
scanf("%c",&a);
}
str[i]=0;
printf("%s\n",str);
}*/

/*2.删除字符串中的字符
输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。
要求定义并调用函数delchar(s,c),它的功能是将字符串中的出现的所有c字符删除
输入输出示例
Input a string: happy new year
Input a char: a
After deleted, the string is: hppy new yer*/
/*#include <stdio.h>
#include <string.h>
void delchar(char *s,char c)
{
char tmp[255];
int i=0,j=0;
for(;i<strlen(s);i++)
if(s[i]!=c)
tmp[j++]=s[i];
tmp[j]=0;
strcpy(s,tmp);
}
void main()
{
char s[255],c;
printf("Input a string:");
gets(s);
printf("Input a char:");
scanf("%c",&c);
delchar(s,c);
printf("After deleted, the string is:%s\n",s);
}*/
/*3.字符串复制。输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s
。要求用字符指针定义并调用函数strmcpy(s,t,m),它的功能是将字符串t中从第m个字符开始的全字符复制到字符串s中。
输入输出示例
Input a string: happy new year.
Input an integer: 7
Output is: new year. */
/*#include <stdio.h>
#include <string.h>
void strmcpy(char *s,char *t,int m)
{
int i,j=0;
i=m-1;
while(t[i])
s[j++]=t[i++];
s[j]=0;
}
void main()
{
char s[255],t[255];
int m;
printf("Input a string:");
gets(t);
printf("Input a integer:");
scanf("%d",&m);
strmcpy(s,t,m);
printf("Output is:%s\n",s);
}*/

/*4.编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串。如”XYZYX”和”xyzyx”,都是“回文”。
输入输出示例:
第一次运行:
Input a string: abcddcba
YES
第二次运行:
Input a string:abcddcb
NO*/
/*#include <stdio.h>
#include <string.h>
int isHunwen(char *s)
{
int i;
for(i=0;i<strlen(s)/2;i++)
if(s[i]!=s[strlen(s)-1-i])
return 0;
return 1;
}
void main()
{
char s[255];
printf("Input a string:");
gets(s);
if(isHunwen(s))
printf("YES\n");
else
printf("NO\n");
}*/
/*5.输入一行文字,统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。

输入输出示例:
Input a string: bFaE3+8=1 B
大写字母的个数为:3
小写字母的个数为:2
空格的个数为:1
数字的个数为:3
其他字符的个数为:2 */

#include <stdio.h>
#include <string.h>
#include <ctype.h>
void main()
{
char s[255];
int i=0,up=0,low=0,space=0,num=0,other=0;
printf("Input a string:");
gets(s);
while(s[i])
{
if(isupper(s[i]))
up++;
else if(islower(s[i]))
low++;
else if(isspace(s[i]))
space++;
else if(isdigit(s[i]))
num++;
else
other++;
i++;
}
printf("大写字母的个数为:%d\n",up);
printf("小写字母的个数为:%d\n",low);
printf("空格的个数为:%d\n",space);
printf("数字的个数为:%d\n",num);
printf("其他字符的个数为:%d\n",other);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-10-28
/*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串
原字母
对应字母
A
Z
B
Y
C
X
D
W
X
C
Y
B
Z
A*/
/*#include
<stdio.h>
void
main()
{
char
str[80];
char
a;
int
i=0;
scanf("%c",&a);
while(a!='\n')
{
if(a>='A'&&a<='Z')
str[i++]='A'+'Z'-a;
else
str[i++]=a;
scanf("%c",&a);
}
str[i]=0;
printf("%s\n",str);
}*/
/*2.删除字符串中的字符
输入一个字符串s,再输入一个字符c,将字符串s中出现的所有字符c删除。
要求定义并调用函数delchar(s,c),它的功能是将字符串中的出现的所有c字符删除
输入输出示例
Input
a
string:
happy
new
year
Input
a
char:
a
After
deleted,
the
string
is:
hppy
new
yer*/
/*#include
<stdio.h>
#include
<string.h>
void
delchar(char
*s,char
c)
{
char
tmp[255];
int
i=0,j=0;
for(;i<strlen(s);i++)
if(s[i]!=c)
tmp[j++]=s[i];
tmp[j]=0;
strcpy(s,tmp);
}
void
main()
{
char
s[255],c;
printf("Input
a
string:");
gets(s);
printf("Input
a
char:");
scanf("%c",&c);
delchar(s,c);
printf("After
deleted,
the
string
is:%s\n",s);
}*/
/*3.字符串复制。输入一个字符串t和一个正整数m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s
。要求用字符指针定义并调用函数strmcpy(s,t,m),它的功能是将字符串t中从第m个字符开始的全字符复制到字符串s中。
输入输出示例
Input
a
string:
happy
new
year.
Input
an
integer:
7
Output
is:
new
year.
*/
/*#include
<stdio.h>
#include
<string.h>
void
strmcpy(char
*s,char
*t,int
m)
{
int
i,j=0;
i=m-1;
while(t[i])
s[j++]=t[i++];
s[j]=0;
}
void
main()
{
char
s[255],t[255];
int
m;
printf("Input
a
string:");
gets(t);
printf("Input
a
integer:");
scanf("%d",&m);
strmcpy(s,t,m);
printf("Output
is:%s\n",s);
}*/
/*4.编程判断输入的一串字符是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串。如”XYZYX”和”xyzyx”,都是“回文”。
输入输出示例:
第一次运行:
Input
a
string:
abcddcba
YES
第二次运行:
Input
a
string:abcddcb
NO*/
/*#include
<stdio.h>
#include
<string.h>
int
isHunwen(char
*s)
{
int
i;
for(i=0;i<strlen(s)/2;i++)
if(s[i]!=s[strlen(s)-1-i])
return
0;
return
1;
}
void
main()
{
char
s[255];
printf("Input
a
string:");
gets(s);
if(isHunwen(s))
printf("YES\n");
else
printf("NO\n");
}*/
/*5.输入一行文字,统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。
输入输出示例:
Input
a
string:
bFaE3+8=1
B
大写字母的个数为:3
小写字母的个数为:2
空格的个数为:1
数字的个数为:3
其他字符的个数为:2
*/
#include
<stdio.h>
#include
<string.h>
#include
<ctype.h>
void
main()
{
char
s[255];
int
i=0,up=0,low=0,space=0,num=0,other=0;
printf("Input
a
string:");
gets(s);
while(s[i])
{
if(isupper(s[i]))
up++;
else
if(islower(s[i]))
low++;
else
if(isspace(s[i]))
space++;
else
if(isdigit(s[i]))
num++;
else
other++;
i++;
}
printf("大写字母的个数为:%d\n",up);
printf("小写字母的个数为:%d\n",low);
printf("空格的个数为:%d\n",space);
printf("数字的个数为:%d\n",num);
printf("其他字符的个数为:%d\n",other);
}
第2个回答  2010-05-21
先回答2题:
第3题:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char string[100];

void getString(char[100]);//prototype
void deleteBlank(char[100]);
void check(char[100]);

getString(string);//call the functions
deleteBlank(string);
check(string);

return 0;
}
//This function is used to ask for a string from the user
void getString(char string[100]){
printf("This program can judge whether the string you entered is a palindrome.\n\n");
printf("Please enter a string.\n\n");
gets(string);
printf("\n");
printf("The string you entered is ");
puts(string);
printf("\n");
}
//This function is used to delete the blanks in the string
void deleteBlank(char string[100]){
int i,j=0;

int length=strlen(string);

for(i=0;i<length;i++){
for(;string[i]==' ';i++){
}
string[j]=string[i];
j++;
}

string[j]='\0';
}
//This function is the main part of the program, it is used to judge whether the string is a palindrome
void check(char string[100]){

struct character{
char ch;
struct character *priorAddr;
};

struct character *tosp=NULL,*temp;

int length=strlen(string);

for(int i=0;i<length;i++){

struct character *newAddr=(struct character *) malloc(sizeof(struct character));

if(newAddr==(struct character*)NULL)
{

printf("Failed to malloc memory for the structure.\n");
exit(1);
}

newAddr->ch=string[i];
newAddr->priorAddr=tosp;
tosp=newAddr;
}

for(i=0;i<length;i++){
if(string[i]!=tosp->ch){
printf("The string you entered is not a palindrome.\n\n");
exit(1);
}
temp=tosp;
tosp=tosp->priorAddr;
free(temp);
}
printf("The string you entered is a palindrome.\n\n");
}

第5题:
#include <stdio.h>
void main()
{
int A,a,nub,kon,oth,i;
char b[100];
A=a=nub=kon=oth=0;
printf("input a string: ");
gets(b);
for(i=0;b[i]!='\0';i++)
{
if('A'<=b[i]&&'Z'>=b[i])
A++;
else if('a'<=b[i]&&'z'>=b[i])
a++;
else if('0'<=b[i]&&'9'>=b[i])
nub++;
else if(b[i]==' ')
kon++;
else
oth++;
}
printf("大写字母的个数为:%d\n",A);
printf("小写字母的个数为:%d\n",a);
printf("空格的个数为:%d\n",kon);
printf("数字的个数为:%d\n",nub);
printf("其它字符的个数为:%d\n",oth);
}
第3个回答  2010-05-21
/* HELLO.C -- Hello, world */

#include "stdio.h"
#include"string.h"
/*问题1的函数*/
void swap(){
char str[81];
int i=0;
str[81]='\0';
scanf("%s",str);
while(str[i]!='\0'&&i<=80){
if(str[i]>='A'&&str[i]<='D')str[i]='Z'-str[i]+'A';
else if(str[i]>='X'&&str[i]<='Z')str[i]='C'-str[i]+'X';
i++;
}
printf("%s\n",str);
}

/*问题2的函数*/
void delchar(char *s,char c){
int len=strlen(s);
int i,j;
for(i=0;i<len;i++){
if(s[i]==c){
for(j=i;j<=len;j++)
s[j]=s[j+1];
s[j]='\0';
len--;
}
}
}
/*问题3的函数*/
void prob_3(){
char *s,*t;
int m;
printf("Input a string:");
gets(t);
printf("Input a integer:");
scanf("%d",&m);
m=strlen(t)-m+1;
strrev(t);
strncpy(s,t,m);
strrev(s);
printf("Output is:%s\n",s);
}

/*问题4的函数*/
void prob_4(){
int i=0,len,flag=0;
char *s;
printf("Input a string:");
gets(s);
len=strlen(s)-1;
while(i<len/2){
if(*(s+i)!=*(s+len-i)){
flag=1;
break;
}
++i;
}
if(flag)printf("NO\n");
else printf("YES\n");
}
/*问题5的函数*/
void prob_5(){
int i=0,num[5]={0},len;
char *s;
printf("Input a string:");
gets(s);
len=strlen(s);
while(i<len){
if(*(s+i)>='A'&&*(s+i)<='Z')num[0]++;
else if(*(s+i)>='a'&&*(s+i)<='z')num[1]++;
else if(*(s+i)==' ')num[2]++;
else if(*(s+i)>='0'&&*(s+i)<='9')num[3]++;
else num[4]++;
++i;
}
printf("大写字母的个数为:%d\n",num[0]);
printf("小写字母的个数为:%d\n",num[1]);
printf("空格的个数为:%d\n",num[2]);
printf("数字的个数为:%d\n",num[3]);
printf("其他字符的个数为:%d\n",num[4]);
}
/*主函数*/
main()
{ char c,s[100];
swap();
printf("Input a string:");
gets(s);
printf("Input a char:");
c=getchar();
delchar(s,c);
printf("%s\n",s);
prob_3();
prob_4();
prob_5();
getch();
}
都写一个程序里了。

c语言高手请进来...
include <stdio.h> void copy(char *f,char *t);int main(){ char a[]="iamaman"; \/\/ 要改成数组,原先那样定义的是指向常量的指针,是不允许修改的。char b[]="youareaman"; \/\/同上 printf("a=%s \\nb=%s \\n",a,b);copy(a,b);printf("a=%s b=%s ",a,b);getchar()...

编程高手请进!(C语言)
1.include <stdio.h> include<stdlib.h> include<ctype.h> main(){ int count;\/*猜数字的次数*\/ int number;\/*系统产生的随机数字*\/ int guess;\/*程序员输入数字*\/ char yes='Y';clrscr();printf("\\nNow let us play the game.\\n Guess the number:");while (toupper(yes)=='Y'...

求C语言程序,高手请进...
\/*1.输入一个以回车结束的字符串(少于80个字符),将其中的大写字母用下面列出的对应大写字母替换,其余字符不变,输出替换后的字符串 原字母 对应字母 A Z B Y C X D W X C Y B Z A*\/ \/*#include <stdio.h> void main(){ char str[80];char a;int i=0;s...

C语言编程问题.请高手进(附源码)!!!HELP
printf("请输入菜名,按回车键结束\\n");scanf("%s",A);printf("\\n请输入拼音码(菜名首字母)&编码&价格{回车确定}\\n");scanf("%s%d%f",c,&d,&e);printf("此款菜:类别为%d,编码为%d,拼音吗为%s,菜名为%s,价格为%f\\n是否正确?(正确请输入1,否则按任意键退出):",b,d,c,A,e);scan...

c语言高手请进
include <stdio.h> int main(){ int i,j,k;for(i=0;i<9;i++){ for(j=0;j<9;j++){ for(k=0;k<9;k++){ if((i+j+k)<10 && i!=0)printf("%d%d%d ",i,j,k);} } } return 0;} 都类似的,只要改改if里的条件就可以了...q币啊.....

C语言高手请进来11
第一题:运行后,循环第一轮后输出8,第二轮后输出7,第三轮输出6,第四轮时达到要求退出循环,结束程序。选B 第二题:这个是找出小于等于50的整数中能被2、3、7整除的数,这个题直接从答案里找一个,所以选C 第三题:运行到这个时for(j=0;j < 3;j++){ if(j%2) continue;x++;} x++ ...

高手请进!你好,请把我写一个C语言的编程题,本人不胜感激!
void ReadDat(int a[],int b[]);void jsSort(int a[],int b[]);void WriteDat(int a[],int b[]);\/\/为了调试方便,将学生人数取为5,将其中的5改为100就合题意了.思路较简单,未加标注 void main(){ int aa[100],bb[100];ReadDat(aa,bb);jsSort(aa,bb);WriteDat(aa,bb);}...

C语言高手请进~~~
static struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},这里定义了一个 结构数组a ,并且将其初始化了,其中a[0]={1,&a[1]},a[1]={2,&a[2]} a[2]={3,&a[0]},后面ptr = &a[1];就是让ptr指向a[1],所以ptr的值就是{2,&a[2]},也就是ptr->i1=2,答案d又...

高分C语言问题~~·高手请进
int getValue(int A[]){ 初始 int S=0 1. (数组A)n个数字从小到大排序 (例如:1,2,9)2. 取上步中最小的两个数相加之和为一个M , S=S+M 3. 数组A中除去最小的两个数,然后将M加进去形成一个新数组A元素个数为 n=n-1 4. n>1时回到1.否则函数返回S+A[0] (或S+M,因为...

用C语言设计一个图书管理系统(高手请进)
printf("%c\\n",ch);getchar();return ch;} }while(1);} void showall()\/*显示所有*\/ { int i=0;FILE *fp;system("cls");if((fp=fopen("C:\\\\bookinfo.txt","r"))==NULL){ printf("ERROR:cannot open file\\n");getchar();return;} printf("booknum bookname author P...

相似回答
大家正在搜