char c [10];
char c[5][10];
即为二维字符数组。char c[10]={'A','b',' ','2',' ','h','a','b','c','d'};
char c[]={'A','b',' ','2',' ','h','a','b','c','d'};
输出一个字符串。
#include <stdio.h>
void main()
{
char c[15] = { 'M','y',' ','n','a','m','e',' ','i','s',' ','X','G','G','M'};
for (int i = 0; i < 15; i++)
printf("%c", c[i]);
printf(" \n");
}
char c[]={"l am happy"};
char c[]=“l am happy";
注意:这里不用单个字符作为初值。而是用一个字符串作为初值。数组c的长度不是10,而是11,因为字符串常量的最后由系统加上一个'\0'。
因此,初始化 char c[]="I am happy";
与 char c[]={'I',' ','a','m',' ','h','a','p','p','y','\0'};
等价。
char c[10]={"China"};
char c[20]; scanf("%s",c);
#include <stdio.h>
#pragma warning(disable:4996)
void main()
{
char str1[5], str2[5], str3[5];
scanf("%s%s%s", str1, str2, str3);
printf("%s %s %s\n", str1, str2, str3);
}
#include <stdio.h>
#include <string.h>
void main()
{
char str[] = { "China\nBeijin" };
puts(str);
}
#include <stdio.h>
#include <string.h>
void main()
{
char str[10];
gets(str);
puts(str);
}
puts (str1, str2);
或 gets(str1, str2);
strcat(字符数组名1,字符数组名2);
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
void main()
{
char str1[10],str2[5];
printf("输入数组1的值:\n");
gets(str1);
printf("输入数组2的值:\n");
gets(str2);
strcat(str1, str2);
puts(str1);
}
strcpy(字符数组名1,字符数组名2);
strncpy( str1,str2,2);
拷贝str2的前两个字符和'\O'。str1="China" ; str1=str2;
是错误的,把字符串赋给某个字符数组,只能用strcpy函数。#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
void main()
{
char str1[10], str2[]="China";
strcpy(str1, str2);
puts(str1);
}
strcmp(字符数组名1,字符数组名2);
if(str1>str2) printf("yes");
if(strcmp(str1,str2)>O) printf("str1>str2");
#include <stdio.h>
#include <string.h>
void main()
{
int a;
char str1[10], str2[]="China";
gets(str1);
a = strcmp(str1, str2);
if (a == 0) printf("str1 = str2\n");
if (a > 0) printf("str1 > str2\n");
if (a < 0) printf("str1 < str2\n");
}
strlen(字符数组名);
#include <stdio.h>
#include <string.h>
void main()
{
int a;
char str[] = "China";
a = strlen(str);
printf("字符串的长度是 %d\n", a);
}
strlwr(字符串);
strupr 宁等串);
输入一串字符,统计数字的个数。
#include <stdio.h>
#include <string.h>
void main()
{
char str[10],c;
int i, num=0;
gets(str);
for (i = 0; (c = str[i]) != '\0'; i++)
if (c >= '0'&&c <= '9')
num++;
printf("%d\n", num);
}
输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。
#include <stdio.h>
#include <string.h>
void main()
{
int i,word=0,num=0;
char c,str[80];
gets(str);
printf("i\t,str[i]\t,word\t,num\n");
for (i = 0; (c = str[i]) != '\0'; i++) {
if (c == ' ') word=0;
else if (word == 0) {
word = 1;
num++;
}
printf("%d\t,%c\t,%d\t,%d\n", i, str[i], word, num);
}
printf("单词的个数是 %d\n", num);
}