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;
}