欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...

发布时间:2024/9/19 编程问答 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

//输入一句英文,只包含字母和空格,如何输出这句英文中的最长单词?再把每个单词的首字母转换成大写!

#include

#include

int main(int argc, const char * argv[])

{

//让用户输入一段英文,

printf("请输入一段英文:\n");

char chr[50]={'a'};

fgets(chr, 50, stdin);

if (chr[strlen(chr)-1]=='\n')

{

chr[strlen(chr)-1]=' ';

}

//声明一个二维字符数组用来保存字符单词

char ch[10][20]={'a'};

//声明一个数组用来保存/n的位置

int num[10] ={0};

//这里的思路是:让num[0]=0,方便下一步,将英文段中的空格下标全部找出来给整形数组赋值,通过空格的下标来将英文段的每个字母赋值给字符二维数组;

int j = 0;

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

{

if (chr[i]==' ')

{

num[++j]=i;

}

}

//将一段英文中的内容赋值到二维数组中

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

{

int k = 0;//定义一个变量,每次让k从0开始

for (int j = num[i-1]; j

{

if (chr[j]!=' ')

{

ch[i-1][k++]=chr[j];

}

}

}

//声明一个指针变量用来指向二维数组的第0个元素,找出整个二维数组中的最长

char *t = ch[0];//因为字符数组的地址是常量无法改变,声明一个字符指针,首先指向第0行和其他行的字符串作比较,如果大于第0行就将长的字符串地址赋值给指针变量,输出指针变量就是最长字符串

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

{

if (strlen(t)

{

t = ch[i];

}

}

printf("最长单词为:%s\n",t);

//转换为大写的思路就简单了,找到每一行的每一列的第一个元素,将他们减去32,就得到他们大写,再打印出来;

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

{

*ch[i]=*ch[i]-32;

}

//循环输出时,会打印出其他代码,可以选择性的打印

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

{

if (*ch[i]!='\340')

{

printf("%s ",ch[i]);

}

}

printf("\n");

return 0;

}

总结

以上是生活随笔为你收集整理的puts遇到空格无法输出_输入一句英文,只包含字母和空格,如何输出这句英文中.....-黑马程序员技术交流社区...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。