1. c语言中单词统计和空格数怎么求解
循环读取字符串中的字符,字符Ascii值等于 ' ' 即为空格,一串连续的a-z和A-Z组成的字符串构成单词
2. C语言中怎么计算空格的数,说思路即可。
可以用冒泡排序法,用for循环9次,每次都判断前一个数是否大于后一个数
再交换
就是两个for的嵌套
这是思路
把8改成10
就是了
3. 用C语言写一个函数int CountSpace(char *pStr);统计字符串中空格的数目
要解决的问题主要是怎么判断字符串的结尾(空格的ASCII码直接用' '就可以了)
一般情况是使用‘\0’判断字符串结尾,但是这样的程序会有漏洞,就是对少数没有‘\0'的字符串 可能 会出错。为什么说可能呢?首先编译的时候肯定没问题,但是在内存一个一个比对字符时,因为字符串中没有’\0'所以到字符串结束时,比对还没结束,他会继续将相邻物理内存中的数据取出对比,直到遇到‘\0'为止;所以建议把函数改成int CountSpace(char *pStr,int n);n用为字符数组长度;
下面是我写的一个程序,我运行过了,可以的
#include<stdio.h>
#define LEN 20 //字符数组的长度
/*
**定义一个函数用于计算字符串空格
*/
int CountSpace(char *pstr, int n)
{
char *p_str;
int sum = 0;
int i = 0;
//遇到字符串中‘\0’或者是字符数组的结尾时退出循环,空格的ASCII是' '
for( p_str = pstr; *p_str != '\0' && i < n; p_str ++, i ++ )
if( *p_str == ' ' ) sum += 1;
printf( "%d\n", i );
return sum;
}
/*
**用函数CountSpace()求出字符串中空格的个数
*/
void
main( void )
{
char str[LEN] = "I am a good boy";
int getch();
int i;
i = CountSpace( str, LEN );//用数组名做实参
printf( "%d", i );
getch();
}
在函数中有个printf( "%d\n", i ); 那个是用来判断循环次数的,不要也可以。你要是只用一个形参,且有'\0'判断结尾,你会发现你的循环次数超出字符数组的长度!虽然结果可能相同。。
我也是刚学C语言,(一个月)有机会多交流一下
4. 输入一串字符,计算其中空格的个数,用C语言
#include <stdio.h>
#include <string.h>
int main(){
char a[999];
int i,n=0;
gets(a);
for(i=0;i<strlen(a);i++){
if(a[i]==' ')
n++;
}
printf("%d个空格",n);
return 0;
}
5. 输入一个字符串,统计出其中空格的个数 C语言
思路:统计字符串中的空格,所以该字符串中有空格,则输入只能使用gets函数,再依次遍历该字符串,判断字符是否是空格,如果是,则空格个数自加1。
参考代码:
#include<string.h>
#include<stdio.h>
#include<math.h>
intmain()
{
intsum=0,i;
chara[100];
gets(a);
for(i=0;a[i]!='