xdoj指针,最长单词的长度,字符串长度判断 ,字符串部分复制,判断字符串是否是回文

2023-12-29 10:21:29

最长单词的长度


给定一个英文句子,统计这个句子中最长单词的长度,并在屏幕上输出。
输入说明
从键盘输入一个英文句子,句子中只含有英文字符和空格,句子以’.’结束。句子总长不超过100个字符。
输出说明
输出一个整数,表示这个句子中最长单词的长度。允许句子中有相同长度的单词。
输入样例1?
I am a student.
输入样例2?
The cat gets a job.
输出样例
输出样例1?
7
输出样例2?
4

#include <stdio.h>
#include <string.h>
int main()
{
?? ?char sentence[101]={'\0'};
?? ?gets(sentence);
?? ?int i=0,max=0,c=0;
?? ?int n=strlen(sentence);
?? ?
?? ?for(i=0;i<n;i++)
?? ?{
?? ??? ?if((sentence[i]>='a' && sentence[i]<='z') || (sentence[i]>='A' && sentence[i]<='Z'))
?? ??? ?{
?? ??? ??? ?c++;
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?c=0;
?? ??? ?}
?? ??? ?if(c>max)
?? ??? ?{
?? ??? ??? ?max=c;
?? ??? ?}
? ? }
?? ?printf("%d",max);
?? ?return 0;
}


字符串长度判断?


写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。
输入说明:
输入一个字符串
输出说明:
输出该字符串中元素的个数。
输入样例:
boy
输出样例:
3
#include <stdio.h>
int my_strlen(char* arr)
{
?? ?int i=0;
?? ?while(*(arr+i)!='\0')
?? ?{
?? ??? ?i++;
?? ?}
?? ?return i;
}
int main()
{
?? ?char input[100]={'\0'};
?? ?gets(input);
?? ?int n=my_strlen(input);
?? ?printf("%d",n);
?? ?return 0;
}


字符串部分复制


问题描述
给定一个的字符串,从第m个字符开始复制成为另一个字符串。
编写函数copystr( )完成字符串复制,使用字符类型的指针变量作为形参
主函数完成字符串输入和m值的输入,函数调用,以及最后结果的输出。
输入说明
第一行从键盘输入一个字符串,该字符串中字符可以是字母、数字、空格和其它字符。字符串总长不超过50个字符。
第二行输入整数m的值。
输出说明?
若该字符串长度小于m,则输出error,否则输出从该字符串第m个字符复制的字符串。
输入样例1?
Abc ba/!.123
3
输入样例2?
abced
6
输出样例
输出样例1?
c ba/!.123
输出样例2?
error

#include <stdio.h>
#include <string.h>
void copystr(char arr[],int m,int n)
{
?? ?int i=0;
?? ?for(i=m;i<=n;i++)
?? ?{
?? ??? ?printf("%c",arr[i-1]);
?? ?}
}
int main()
{
?? ?int m=0;
?? ?char str[100];
?? ?gets(str);
?? ?scanf("%d",&m);
?? ?int n=strlen(str);
?? ?if(n<m)
?? ?{
?? ??? ?printf("error");
?? ?}
?? ?else
?? ?{
?? ??? ?copystr(str,m,n);
?? ?}
?? ?return 0;
}


判断字符串是否是回文


问题描述
给定一个字符串,判断该字符串是否是回文,并在屏幕上输出判断结果。如“abcba”即是回文。
输入说明?
从键盘输入一个字符串,该字符串中字符可以是字母、数字和空格,字母区分大小写。字符串总长不超过50个字符。
输出说明
若该字符串是回文,则输出yes,否则输出no。
输入样例1?
abcba
输入样例2?
Abccba
输出样例1?
yes
输出样例2?
no

#include <stdio.h>
#include <string.h>
int main()
{
?? ?char str[51] = {'\0'};
?? ?gets(str);
?? ?int n = strlen(str);
?? ?int sign=0;
?? ?
?? ?int i=0,mid=0;
?? ?if(n%2==1)
?? ?{
?? ??? ?mid = (n + 1) / 2;
?? ??? ?for(i=0;i<mid-1;i++)
?? ??? ?{
?? ??? ??? ?if(str[i]!=str[n-1-i])
?? ??? ??? ?{
?? ??? ??? ??? ?sign = 1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if(sign == 0)
?? ??? ?{
?? ??? ??? ?printf("yes");
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("no");
?? ??? ?}
?? ?}
?? ?else
?? ?{
?? ??? ?mid = n/2;
?? ??? ?for(i=0;i<=mid-1;i++)
?? ??? ?{
?? ??? ??? ?if(str[i]!=str[n-1-i])
?? ??? ??? ?{
?? ??? ??? ??? ?sign = 1;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?if(sign == 0)
?? ??? ?{
?? ??? ??? ?printf("yes");
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("no");
?? ??? ?}
?? ?}
?? ?
?? ?return 0;
}

文章来源:https://blog.csdn.net/2301_80300205/article/details/135171048
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。