c语言输入一行带空格字符串,输出其中以p或P开头的单词,每个单词一行.

如题所述

VS2012 可测
int _tmain(int argc, _TCHAR* argv[])
{
char inputStr[1024] = "";
char *cur = NULL;
bool valid = false;

gets(inputStr);
for(cur = inputStr; *cur; cur++)
{
if(' ' == *cur)
{
if(valid) if(valid) printf("%s", "\r\n");

valid = false;
continue;
}

if('p' == *cur || 'P' == *cur)
{
if(!valid) valid = true;
}

if(valid) printf("%c", *cur);
}

scanf("%s", inputStr);
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-11-02
思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。依次遍历字符串即可。参考代码:#include "stdio.h" int main() {char a[100];int i;bool f=true;gets(a);for(i=0;a[i]!='\0';i++) {if(f){printf("%c",a[i]-32);f=false;}elseprintf("%c",a[i]);if(a[i]==' ')f=true;}return 0;}/*运行结果:i love youI Love You*/

C语言如何输入一行有空格的字符串?
C语言输入一行有空格的字符串的方法:1、对于char char s[100];cin.getline(s,1000);\/\/第二个参数表示允许输入的最大长度while(cin.getline(s,1000));输入输出样例 输入:He llo 输出:He llo 2、对于string string s;getline(cin,s);while(getline(cin,s));输入输出样例 输入:He llo 输出:H...

c语言,输入一行字符串,输出其中所出现的大写英文字母。
include<stdio.h>#include<ctype.h>#include<string.h>void main(){ char a[100],*p,y;int x,i,num;gets(a);p=a;x=strlen(a);\/\/不知道你中间这一段有啥用 我全删了for(i=0;i<x;i++)if(*(p+i)>=65&&*(p+i)<=90)printf("%c",*(p+i));}FONTNAME and FONTAMELFONTN...

C语言如何输入一行有空格的字符串?
如果你用scanf()函数的话,遇到空格会返回;如果你用gets()函数的话,遇到空格就不会返回了,遇到回车才返回;gets()格式:char*p;gets(p);那么字符串就以p为首地址存放,记得给p分配足够的空间就好。

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
printf("数字字符数量:%d\\n小写字母字符数量:%d\\n大写字母字符数量:%d\\n",sum0,suma,sumA);}

c语言输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
在C语言中,编写一个程序可以统计并输出给定字符串中的大写字母、小写字母、数字字符和其他字符的数量。程序使用指针遍历字符串,通过条件判断来区分各类字符。以下是该程序的示例代码:include<stdio.h>voidmain(){chara[100];intsum0=0,suma=0,sumA=0;gets(a);char*p;for(p=a;*p!='\\0';p++)...

...个单词,以‘.’结束。你要输出这行文本中每个单词的长度。
1、首先,定义一个常量,控制字符串的长度。2、定义两个数组,保存文章中的字符和最短单词。3、用do-while循环控制输入文章,条件是不等于句号。4、取文章中的字符,保存在数组art中。5、用for循环控制获取文章中的最短单词,条件是小于等于l。6、用if语句判断是否为空格和句号,获取一个单词。7、...

c语言 输入一串字符串,统计并输出其中的大写字母、小写字母、数字字符...
c include void main() { char a[100];int sum0 = 0, suma = 0, sumA = 0; \/\/ 数字字符、小写字母和大写字母计数器 \/\/ 从用户获取输入 gets(a);\/\/ 使用指针遍历字符串 char* p;for (p = a; *p != '\\0'; p++) { \/\/ 检查字符类型 if (*p >= '0' && *p <= '9') ...

C语言编程:主函数输入一行有空格和数字的字符串,求这行字符串的缩写,怎...
include <string.h> include <ctype.h> char *p = "无法生成缩写词!";char s[10001], buf[10001];char * strTos(char *str) { if (strlen(str) < 4)return p;int word = 0, len = 0, i = 0;char *t = str, temp;while (*t) { if (*t == ' ' || *t == '\\n')...

C语言字符串问题: 输入一个字符串,其中有空格,因此字符串被分为n个...
ch[m++]=word[i][p];} } } } } } return m;} void main(){ char str[256],ch[256];char word[256][256];int i,m=0,n=0;printf("请输入一个字符串:\\n");gets(str);n=Div(str,word);printf("共有%d个单词\\n",n+1);for(i=0;i<=n;i++)printf("%s ",word[i]...

c语言如何使一行字符串,按空格分开形成多个字符串,然后再记录每个已分...
p-str_len, str_len); longest_len = str_len; } total_len += str_len; str_len = 0; if ('\\0' == *p) { break; } } else { str_len++; } p++; } strcpy(buff

相似回答