字符串(1)

char

  • 字符串数组
  • 采用变长字符串数组
  • 使用转义字符
  • 向结构体增加数组
  • 字符串执行数据操作

重要语句

char word[] = {'H','e','l','l','o','!'};

//字符串数组

concat(result, str1,n1,str2,n2);

//cancat函数

concat
n. v. 合并多个数组,合并多个字符串

const char word [] = {'H','e','l','l','o','!','\0'};

//“\0” 空字符: 用于表示字符串结尾的特殊字符。

char word [] = {"Hello!"};

//上一句简化版。

printf("%s\n",word);

//%s 显示一个已空字符为结尾的字符串,空字符之后不显示。

bool equalStrings(const char s1[],const char s2[]);

//判断字符串是否相等

scanf("%80s",string);

//%s格式字符的scanf()函数读取过程持续到空格,制表符或者行末。
scanf()最多可以存储80个左右字符,%之后一个数字可以制定要读取的最大字符数。

bool alphabetic(const char c)
{
  if((c>='a' && c<='z') || (c>='A' && c<='Z'))
      return true;
  else
      return false;
}

//判断一个字符是否为字母

alphabetic
adj. 字母的;照字母次序的

 char buffer[100] = "";

//空字符串

char buffer[5] = " ";

//包含一个空格字符的字符串

经典程序

计算一个文本的单词个数

#include<stdio.h>
#include<stdbool.h>

/*此函数判断一个字符是否为字母*/
bool alphabetic(const char c)
{
    if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
        return true;
    else
        return false;
}
/*此函数从终端读入文本行*/
void readLine(char buffer[])
{
    char character;
    int i = 0;

    do 
    {
        character = getchar();
        buffer[i] = character;
        ++i;
    } while (character != '\n');

    buffer[i - 1] = '\0';

}
/*此函数计算一个字符串中的单词个数*/
int countWords(const char string[])
{
    int i, wordCount = 0;
    bool lookingforword = true, alphabetic(const char c);
    for (i = 0; string[i] != '\0'; ++i)
        if (alphabetic(string[i]))
        {
            if (lookingforword)
            {
                ++wordCount;
                lookingforword = false;
            }
        }
        else
            lookingforword = true;
    return wordCount;
}

/*主函数:计算一个文本中的单词个数*/
int main(void)
{
    char text[81];
    int totalword = 0;
    int countWords(const char string[]);
    void readLine(char buffer[]);
    bool endOfText = false;
    printf("Type in your text.\n");
    printf("When you are done,press‘Enter’.\n\n");
    while (!endOfText)
    {
        readLine(text);
        if (text[0] == '\0')
            endOfText = true;
        else
            totalword += countWords(text);
     }
    printf("\nThere are %i words in the above text.\n", totalword);
    system("pause");
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值