输入两个字符串,比较两个字符串大小,将大的连接到小的后面,赋值给一个新串,将该串转换成小写

输入两个字符串,比较两个字符串大小,将大的连接到小的后面,赋值给一个新串,将该串转换成小写,第1张

给你3个函数:

strcmp 比较两个字符串的大小

strcat 将两个字符串拼接在一起

strlwr 将字符串中的大小英文字符转换成小写

详细请参考:睿腾编程网-C语言-132 C语言函数(二)

全部完成,分给我吧

1 sum=9,count=3

2 12450241245024124502412450241245024124502412450241245024

3 24

4 15

编程:

1从键盘上输入10个数,用起泡法对这10个数排从小到大的顺序排序后输出

#include"stdioh"

void ques1()

{

int a[10];

int i,j,t;

printf("input 10 numbers:\n");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("\n");

for(j=0;j<=8;j++)

for(i=0;i<=9-j;i++)

if (a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("the sorted numbers :\n");

for(i=0;i<10;i++)

printf("%d,",a[i]);

printf("\n");

}

2求Fibonacci数列的前10项

#include "stdioh"

void ques2()

{

int x=1,y=0,i;

for(i=1;i<=5;i++)

{x=x+y;

y=x+y;

printf(" %d %d",x,y);

}

printf("\n");

}

3用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能

char strcat(char target,const char source)

{

char original=target;

while(target) target++; // Find the end of the string

while(target++=source++);

return(original);

}

char strcpy(char destination, const char source)

{

while(destinaton++=source++);

return (destination-1);

}

int strcmp(const char str1,const char str2)

{

while((str1==str2)&&(str1))

{

str1++;

str2++;

}

if((str1==str2)&&(!str1)) //Same strings

return o;

else if((str1)&&(!str2)) //Same but str1 longer

return -1;

else if((str2)&&(!str1)) //Same but str2 longer

else

return((str1>str2)-1:1);

}

int strlen(const char string)

{

int i=0;

while(string[i]) i++;

return i;

}

char strlwr(char s)

{

for(int i=0;s[i]!='\0';i++)

if(s[i]>'A'&&s[i]<'Z')

s[i]=s[i]-'A'+'a';

return s;

}

4求一个3×3矩阵对角线之和

float ques4(float a,int size=3)

{

float sum;

for(i=0;i<size;i++)

sum=sum+a[isize+i];

return sum;

}

5求一个6×6矩阵的最大值及其下标

float ques5(float a,int size=6)

{

int i=0,j=0;

float max=a[isize+j];

for(int m=0;m<size;m++)

for(int n=0;n<size;n++)

if(max<a[msize+n])

{max=a[msize+n];i=m;j=n;}

printf("max is a[%d][%d]: %g\n",i,j,max);

return max;

}

6用递归函数求n!

int ques6(int n)

{

if(n=0) return 1;

else return nques6(n-1);

}

7写一个函数,输入一个4位数字,要求输出这4个数字字符,每两个数字字符间空一个空格

main()

{

int n;

scanf("%d",&n);

printf(ques7);

}

char ques7(int n)

{

static char a[8];

a[0]=n/1000+'0';

a[1]=' ';

a[2]=(n%1000)/100+'0';

a[3]=' ';

a[4]=(n%100)/10+'0';

a[5]=' ';

a[6]=n%10+'0';

a[7]='\0';

return &a[0];

}

8输入两个整数,求它们相除的余数,用带参的宏来实现

#define ques8(a,b) a%b

main()

{

int a,b;

scanf("%d,%d",&a,&b);

printf("%d%%%d=%d",a,b,ques8(a,b));

}

1输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换

#include"stdioh"

#include"stdlibh"

main()

{

int a;

a=(int )malloc(10sizeof(int));

for(int i=0;i<10;i++)

scanf("%d",a+i);

int pmin=a,pmax=a;

for(i=0;i<10;i++)

{

if((a+i)<pmin){pmin=a+i;}

if((a+i)>pmax){pmax=a+i;}

}

int t;

t=pmin;pmin=a;a=t;

t=pmax;pmax=(a+9);(a+9)=t;

}

2用自定义函数实现字符串处理函数strcat、 strcpy、strcmp、strlen和strlwr的功能

char strcat(char target,const char source)

{

char original=target;

while(target) target++; // Find the end of the string

while(target++=source++);

return(original);

}

char strcpy(char destination, const char source)

{

while(destinaton++=source++);

return (destination-1);

}

int strcmp(const char str1,const char str2)

{

while((str1==str2)&&(str1))

{

str1++;

str2++;

}

if((str1==str2)&&(!str1)) //Same strings

return o;

else if((str1)&&(!str2)) //Same but str1 longer

return -1;

else if((str2)&&(!str1)) //Same but str2 longer

else

return((str1>str2)-1:1);

}

int strlen(const char string)

{

int i=0;

while(string[i]) i++;

return i;

}

char strlwr(char s)

{

for(int i=0;s[i]!='\0';i++)

if(s[i]>'A'&&s[i]<'Z')

s[i]=s[i]-'A'+'a';

return s;

}

全部完成,分给我吧

写好了

#pragma warning(disable:4786)

#include<fstream>

#include<string>

#include<iostream>

#include <iomanip>

#include<vector>

#include <set>

#include <cctype>

//by wangtk1982

using namespace std;

struct WORDS

{

string str;

int line;

}words;

int main()

{

vector<WORDS>data;

set<string>tsdata;

string sFilePath,sline;

cin>>sFilePath;

int lines=0;

ifstream file(sFilePathc_str());

if(!file)

{

cerr<<"Cann't open file:"<<sFilePath<<endl;

return 0;

} ;

while(getline(file,sline,'\n'))

{

for(int i=0;i <slinesize();++i)

sline[i]=isalnum(sline[i])sline[i]:' ';

lines++;

char p = strtok ((char)slinec_str()," ");

while(p!=NULL)

{

wordsstr=strlwr(p);

wordsline=lines;

datapush_back(words);

tsdatainsert(wordsstr);

p = strtok(NULL," ");

}

}

for (set<string>::iterator it = tsdatabegin();it != tsdataend(); it++)

{

cout <<setiosflags(ios::left)<<setw(16)<<(it);

for (vector<WORDS>::iterator it1 =databegin();it1 != dataend(); it1++)

if((it)==((it1)str))

cout <<setw(4)<<(it1)line;

cout<<endl;

}

return 0;

}

1自己编写程序

2利用MFC中CString类方法,!!!工程一定要设置为多线程,工程-》设置-》c/c++-》code generation下使用运行时库设置为multithreaded 不是发布版就用debug的

#include <afxh>

#include<iostream>

#include <string>

using namespace std;

void main()

{

string str2;

cin>>str2;

CString str1;

str1Format("%s",str2c_str());

str1MakeUpper();//大写

cout<<(LPCTSTR)str1<<endl;

str1MakeLower();//小写

cout<<(LPCTSTR)str1<<endl;

}

3_strlwr(char); _strupr(char);方法 stringh头文件里的函数或者

strlwr(char); strupr(char);

在 C 语言中区分字母的大小写,利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为 32),可以将小写字母转换为大写字母。编写程序实现,从键盘上输入一个小写字母,按回车键,程序将该小写字母转换为大写字母,并输出其 ASCII 值。

算法思想

由于大写字母与小写字母之间的差值为 32,因此小写字母转换为大写字母的方法就是将小写字母的 ASCII 码值减去 32,便可得到与之对应的大写字母。

利用 getchar 函数从键盘上输入一个小写字母,并将其赋给一个字符变量 a;然后将 a—32 的值赋给字符变量 b;最后进行输出,输出时先输出字母,再将字母以整数形式输出。其具体步骤如下:

① 定义两个字符变量 a、b;

② a=get char();

③ b=a—32;

for(j='a';j<='z';j++) 遇到‘=’、‘+’就跳出循环啦,你认为这是否能统计整个字符串

建议 int ch[26];ch[025]=0;for(i=0; i<strlen(s);++i) if(s[i]>='a' && s[i] <= 'z') ch[s[i] - 'a']++;

原因:因为C编译器在处理函数的参数时间,实参向形式参数传值自右向左逐个赋值,所以先处理右边的strupr(a),这样就先把字符数组a全变成大写,但是此时还不能立即给相应的形参传值,还必须把strlwr(a)表达式也要计算出来,然后才能逐个自右向左给形参传值,当处理strlwr(a)时间,把字符数组a又全变成小写。此时由于字符数组a中内容全变成小写,而且strupr(a)和strlwr(a)都是返回数组a的首址,所以由于此时a中已经全变成小写,故此时自右向左给形参传值,都传的是同一个a,所以输出的内容都是小写了。

不知道这样描述你是否清楚了。如果清楚了,请加分。谢谢

所有程序在win-tc和Dev-c++下运行通过。

现在所有的题目都有答案了。

第一题:

#include <stdioh>

#define N 10

int main()

{

int a[N],i,m=0,n=0,max,min,p;

p=a;

printf("Please input %d elements of the matrix :\n",N);

for(i=0;i<N;i++)

scanf("%d",p+i);

printf("The array you input is:\n");

for(i=0;i<N;i++)

printf("%5d",(p+i));

printf("\n");

max=min=p;

for(i=1;i<N;i++)

{ if(max<(p+i))

{m=i;max=(p+i);}

if(min>(p+i))

{n=i;min=(p+i);}

}

(p+n)=p;

p=min;

(p+m)=(p+N-1);

(p+N-1)=max;

printf("The matrix you want is:\n");

for(i=0;i<N;i++)

printf("%5d",(p+i));

printf("\n");

system("pause");

return 0;

}

或者

#include <stdioh>

int main(void) / 找出队列中最小数放最左边 最大数放最右边/

{ int num[10];

/ int num[10]={9,7,3,6,2,10,1,5,8,4}; /

int max,min,i,j,k;

printf("input 10 numbers:\n");

for(i=0;i<10;i++)

scanf("%d",&num[i]);

for(i=0;i<10;i++)

printf("%d ",num[i]);

printf("\n");

max=min=num[0];

for(i=1;i<10;i++)

{

if(num[i]>max)

{max=num[i];

j=i;

}

else if(num[i]<min)

{min=num[i];

k=i;

}

}

if(j!=9)

{ num[j]=num[9];num[9]=max;

}

if(k!=0)

{ num[k]=num[0];num[0]=min;

}

printf("output 10 new numbers:\n");

for(i=0;i<10;i++)

printf("%d ",num[i]);

printf("\n");

getch();

return 0;

}

第二题:

#include <stdioh>

int length(char p) / strlen()函数原型,求一个字符串的长度 /

{

int n=0;

while(p!='\0')

{ n++;

p++;

}

return(n);

}

int main(void)

{

int len;

/ int length(); /

char str[80];

printf("\nInput a string(<80 characters):");

gets(str); /如果这里用scanf()函数,那么一行中空格后的输入字符都无效/

len=length(str); /因为scanf()函数以空格或tab键或回车键结束/

printf("The string is:%s\n",str);

printf("The length of the string is %d",len);

getch();

return 0;

}

#include <stdioh> / strcmp函数原型 /

int strcmp(char p1,char p2)

{int i=0;

while ((p1+i)==(p2+i))

if ((p1+i++)=='\0') return 0; / 这里是先判断(p1+i)=='\0',然后再是i++ /

return ((p1+i)-(p2+i));

}

int main(void)

{char s1[80],s2[80];

int i,j;

char p1,p2;

printf("Input two strings:(<80 characters each)\n");

gets(s1);

gets(s2);

p1=s1;

p2=s2;

j=strcmp(p1,p2);

printf("result:%d\n",j);

getch();

return 0;

}

#include "stringh" / 计算字符串中子串出现的次数 说明:这里子串是str2,母串是str1 /

#include "stdioh"

main()

{ char str1[80],str2[80],p1,p2;

int sum=0;

printf("\nPlease input two strings\n");

gets(str1);

gets(str2);

p1=str1;p2=str2;

while(p1!='\0')

{

if(p1==p2)

{while(p1==p2&&p2!='\0')

{p1++;

p2++;}

}

else

p1++;

if(p2=='\0')

sum++;

p2=str2;

}

printf("Times of str2 appeared in str1 are:%d",sum);

getch();

}

其它类似,仿照来写。

第三题:

/从键盘上任意输入20个数,要求找出其中的素数,并将这些素数按升序排列。(必须用模块化、用指针实现)/

#include <stdioh>

#include <mathh>

#define N 20

void sort(int q,int j)

{int i,k,t;

for(i=0;i<j-1;i++) / 选择排序 /

for(k=i+1;k<j;k++)

if((q+i)>(q+k))

{t=(q+i);

(q+i)=(q+k);

(q+k)=t;

}

}

int main()

{ int i,j=0,k,flag,a[N],b[N],p,q;

p=a;

q=b;

printf("Please input %d numbers:\n",N);

for(i=0;i<N;i++)

{ flag=0;

scanf("%d",p+i);

for(k=2;k<=sqrt((p+i));k++) / 这里把判断素数放在了这里 /

if(((p+i)%k)==0){flag=1;break;}

if(flag==0)

{ (q+j)=(p+i);j++;}

}

sort(q,j);

printf("The prime you want are:\n");

for(i=0;i<j;i++)

printf("%-5d",(q+i));

getch();

return 0;

}

第七题:

/ 输入两个整数,求它们相除的余数,用带参的宏来实现 /

#include <stdioh>

#define MOD(a,b) ((a)%(b))

int main()

{ int a,b;

printf("Please input a and b:\n");

scanf("%d%d",&a,&b);

printf("%d%%%d= %d\n",a,b,MOD(a,b));

system("pause");

return 0;

}

以上就是关于输入两个字符串,比较两个字符串大小,将大的连接到小的后面,赋值给一个新串,将该串转换成小写全部的内容,包括:输入两个字符串,比较两个字符串大小,将大的连接到小的后面,赋值给一个新串,将该串转换成小写、C语言的问题、编写程序,从键盘读入一个文本文件名字(可带路径),为该文件中的所有单词建立一等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10110554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存