精华内容
下载资源
问答
  • c语言 输入一行字符,分别统计出其中英文字母 空格 数字和其他字符的个数
                   

    输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

    解:程序:

    #include <stdio.h>

    int main()

    {

     char c;

     int letters=0,space=0,digit=0,other=0;

     printf("请输入一行字符:");

     while ((c=getchar())!='\n')

     {

      if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z')

      {

       letters++;

      }

      else if (c == ' ')

      {

       space++;

      }

      else if (c >= '0'&&c <= '9')

      {

       digit++;

      }

      else

      {

       other++;

      }

     }

     printf("字母数:%d\n空格数:%d\n数字数:%d\n其他字符:%d\n",letters,space,digit,other);

     return 0;

    }

    结果:

    请输入一行字符:I am a student 666.

    字母数:11

    空格数:4

    数字数:3

    其他字符:1

    请按任意键继续. . .


    本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1742350

               
    展开全文
  • c语言 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开
                   

    输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

    解:如果测出某一个字符为非空格,而它前面的字符是空格,则表示新单词开始了,用变量word作为判别当前是否开始了一个新单词的标志,word=0,未出现新单词,word=1,出现了新单词。

    程序:

    #include<stdio.h>

    int main()

    {

     char string[81];

     int i,count=0,word=0;

     char c;

     gets(string);//输入一个字符串给字符数组string

     for (i = 0;(c=string[i])!='\0'; i++)

     {

      if (c == ' ')//如果是空格字符,使word置0

      {

       word = 0;

      }

      else if (word == 0)//如果不是空格字符,且word原来的值为0,使word置1

      {

       word = 1;

       count++;

      }

     }

     printf("count=%d\n",count);

     return 0;

    }

    结果:

    I am handsome!

    count=3

    请按任意键继续. . .


    本文出自 “岩枭” 博客,请务必保留此出处http://yaoyaolx.blog.51cto.com/10732111/1746401

               
    展开全文
  • 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。 本程序使用库函数来统计字母数字和其他字符的个数 #include<stdio.h> #include<ctype.h> int main() { int letter=0,shuzi=...

    输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

    本程序使用库函数来统计字母数字和其他字符的个数

    #include<stdio.h>
    #include<ctype.h>
    int main()
    {
    	int letter=0,shuzi=0,kongge=0,qita=0,c;
    	while((c=getchar())!='\n')
    	{
    		if(isalpha(c))
    		{
    			letter++;
    		}
    		else if(isdigit(c))
    		{
    			shuzi++;
    		}
    		else if(c==' ')
    		{
    			kongge++;
    		}
    		else
    		{
    			qita++;
    		}
    	}
    	printf("%d %d %d %d",letter,shuzi,kongge,qita);
    	return 0;
    }

     

    展开全文
  • 输入一行字符,统计其中有多少个单词 有三个字符串,找出其中最大者

    问题1:输入一行字符,统计其中有多少个单词

    思考这一类问题的常用解决方法是什么?是这种形式的:
    ------》最终完整的代码:《------

    #include <stdio.h>
    // isalpha()用到的库。用来判断一个字符是否是英文字母。
    #include <ctype.h>
    #define OUT    0
    #define IN    1
    
    // 返回字符串的单词数
    unsigned countWords(char *str)
    {
        int state = OUT;
        unsigned wc = 0;  // 单词数默认为0
    
        // 遍历字符串str的所有字符
        while (*str)
        {
            // 如果下一个字符是单词的分割符则设置状态为OUT
            if (*str == ' ' || *str == '\n' || *str == '\t')
                state = OUT;
    
            // 如果下一个字符不是单词的分隔符且状态为OUT且是英文字母,则将状态设置为IN并增加单词计数
            else if ((state == OUT)&& isalpha(*str))
            {
                state = IN;
                printf("\n打印第%u单词:%c%c%c%c%c\n",wc+1,*str,*(str+1),*(str+2),*(str+3),*(str+4),*(str+5));
                ++wc;
            }
            
            // 移动到下一个字符
            ++str;
        }
        
        return wc;
    }
    
    // 编程实现代码
    int main(void)
    {
        char str[] = "One  two  222  @@@  333  three\n  four\t  five  six  ";//注意我这是单词之间是2个空格的案例
        printf("\nThere are %u words\n", countWords(str));
        return 0;
    }
    

    在这里插入图片描述
    可以看到:
    示例
    char str[] = "One two 222 @@@ 333 three\n four\t five six ";
    最终只有 One two three four five six 这6个单词打印了出来。
    像222 @@@ 333不是单词,所以单词数是6。
    你可以加 444测试,例如
    char str[] = "One two 222 @@@ 333 444 three\n four\t five six ";
    单词数仍然是6。(我已经试过了)

    眼睛看一眼以下注释:

                //我这是方便你直观地阅读感受程序的效果添加的一行,其实可不要,因为看起来笨了点哈哈
                //你把我的代码原封不动调试完后把这行代码删了,或注释掉。
                //然后你自己把char str[] = "你自己测试的字符串"
                //或者用gets()接受字符串
                //我这也好长时间没写c代码的,怎么简单就怎么来,期待后面的后浪们优化程序哈哈
                //printf("\n打印第%u单词:%c%c%c%c%c\n",wc+1,*str,*(str+1),*(str+2),*(str+3),*(str+4),*(str+5));//一定要记得调试完注释掉这一行代码!!!
    

    ------》网上不是太完整的代码:【可能是考试的"标准答案",唉。。。】《------

    //输入一行字符,统计其中有多少个单词
    #include<stdio.h>
    #include<string.h>
    int main() 
    {   char string[81]; 
        int i,num=0,word=0; 
        char c; 
        gets(string); 
        for(i=0;(c=string[i])!='\0';i++) 
           if(c==' ')  word=0; 
           else if(word==0) 
           {   word=1;  num++;   } 
        printf("There are %d words ",num); 
    }
    

    调试的结果:
    在这里插入图片描述

    算法图解如下:
    在这里插入图片描述
    ------》输入一行字符,统计其中有多少个单词 的问题到此解决了《------

    升级问题如下:
    问题2:有三个字符串,找出其中最大者
    例如
    在这里插入图片描述
    搞清楚字符串的比较逻辑是什么?【问题是什么?问题的解决逻辑是什么?代码实现。】
    字符串的比较逻辑:
    当s1<s2时,返回为负数;
    当s1=s2时,返回值= 0;
    当s1>s2时,返回正数。
    即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。如:

    /*
    其中A=65,a=97
    1."A"<"B" 
    2."A"<"AB" 
    3."Apple"<"Banana" 
    4."A"<"a" 
    5."compare"<"computer"
    */
    

    搞清楚字符串的比较逻辑之后,那么how hello hinihao 这三个字符串大小的关系是:
    how > hinihao > hello
    所以输出最大的字符串就是输出how.
    完整代码如下:

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
    
    	char str[3][20],  // 定义二维字符数组
             string[20];  // 定义一维字符数组,作为交换字符串时的临时字符数组
    	int i;
    
    	for(i=0;i<3;i++)
    		gets(str[i]);
    		
    	if (strcmp(str[0], str[1])>0) {strcpy(string, str[0]);}
    	else {strcpy(string,str[1]);}
    	
        if(strcmp(str[2],string)>0) {strcpy(string,str[2]);}
        else {strcpy(string,string);}
    
        printf("The largest string is:%s\n", string);
    
        return 0;
    }
    

    输入:
    how
    hello
    hinihao
    代码应该执行输出:
    how
    截图:
    在这里插入图片描述
    ------》搞定 问题2:有三个字符串,找出其中最大者 的问题到此解决了《------

    秘籍思维:
    编程就是解决问题。
    解决问题就是找解决逻辑。
    最终将逻辑转化为代码实现。【c语言代码,python代码,go代码】

    展开全文
  • ![图片说明](https://img-ask.csdn.net/upload/201511/05/1446730479_682233.png) 这是我写的代码为啥运行不出结果 ``` #include<stdio.h> int main() { char c[100];int j=1;int i; gets(c);...
  • C语言输入字符字符

    千次阅读 多人点赞 2019-04-14 15:53:11
    1.C语言输入字符字符C语言有多个函数可以从键盘获得用户输入,它们分别是:...gets():获取一行数据,并作为字符串处理。 2.输入单个字符 输入单个字符当然可以使用scanf()这个通用的输入函数,对应的格...
  • C语言输入未知长度字符数组

    万次阅读 2019-02-10 15:31:03
    问题描述:在最基础的C语言中使用scanf()函数简单输入一行长串字符数组,以回车结束。储存每一个字符以参与后面的运算,或者将他们打印下来。 细节问题 回车(enter)结束——指的是以字符’\n’结束; 输入采用%...
  • C语言输入一字符 将其逆序c

    千次阅读 2018-11-23 12:45:46
    #include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { int d,i,j,t; char s[1000]; scanf("%s",&amp;s);//遇到空格和回车就停止读入gets遇见回车停止 ...s[d-1-i...
  • 输入一行字符串统计出英文字母,空格,数字和其他字符的个数。 程序分析 要统计英文字母,空格,数字和其他字符的个数,则要遇到他们加一。 核心代码如下: while ((c=getchar())!='\n') { if ((c &gt;= 'a' ...
  • 输入一行字符,将此字符串中最长的单词输出。 #include<stdio.h> #include<string.h> int main() { char a[100], b[100], c[100]; c[0] = '\0'; puts("%输入字符串"); gets_s(a); int i; for (i =...
  • 要求:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 这里我本来想用笨方法判断单词的位置,参考答案之后,发现方法比较精妙。 直接上代码: #include <stdio.h> int main() { char c[50...
  • C语言 输入一行字符串,将其中的数字删除,打印其余字符
  • C语言-输入一行英文字符串统计单词个数

    千次阅读 多人点赞 2019-11-30 21:37:37
    C语言-输入一行英文字符串统计单词个数,单词之间以空格隔开 判断是否为单词的依据,通过一个flag标识,flag为0表示字符为空格,接下来出现不是空格,会将flag置为1 只有当flag为1且当前字符不为空格,才会算作...
  • 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。解:程序:#include int main(){ char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:"); while ((c=getchar())!='\n') ...
  • 一行字符 输出 逆序后的字符串 样例输入 123456abcdef 样例输出 fedcba654321 来源/分类 C语言 题目截图: 思路: 想吐槽一下,自己用C语言做了好久,一个下午吧! C语言,代码写了好多!...
  • //5.2 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数 abc123 !! AAAA char c; //输入的字符串 int i=0; //字符总数 int upper_case=0; //大写字母个数 int lower_case=0; //小写字母个数 ...
  • c语言输入一行未知个数数字存入数组 代码: #include<stdio.h> #include<ctype.h> int main() { int a[1000]; char c; int i = 0; int n = 0; while ((c = getchar()) != '\n') { if (isdigit(c...
  • 2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数 #include<stdio.h> int main() { char ch; int count1=0,count2=0,count3=0,count4=0; //用来计数 while((ch=getchar())!='\n') //此处...
  • C语言 字符串分类统计 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数 题目: 输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数 样例输入: aklsjflj123 sadf918u324 asdf...
  • 输入一行字符,要求删去其中的某个字符后输出,要删除的字符由键盘输入。
  • #include <stdio.h> #include <stdlib.h>...//emp是打印回车的次数 如果开头有空格 那么第次遇到字母不打印回车 while(fflush(stdin),gets(a)) { for(i=0; i<200; i++) { if(a[...
  • #include "stdio.h" #include "string.h" void main() { ... printf("请输入一行字符:"); /* 这个地方不可以使用scanf(%s)函数,因为scanf(%s)遇到空格、回车和Tab键都会认为输入结束,所以它不能接收空格。
  • 题目:输入一行字符,统计其中有多少单词,单词之间用空格分隔开。 下面是运行结果: 下面是我编写的源代码: #include //输入一行字符,统计其中有多少单词,单词之间用空格分隔开 int main() { int i,...
  • 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。解:如果测出某一个字符为非空格,而它前面的字符是空格,则表示新单词开始了,用变量word作为判别当前是否开始了一个新单词的标志,word=0,未出现新...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 132,840
精华内容 53,136
关键字:

c语言输入一行字符

c语言 订阅