c语言期末复习知识点汇总

1、判断输入的一个字符串是否是“回文”:

for (i = 0, j = strlen(a) - 1; i < j; i++, j--)

注:前后的相互比较可以同时进行

2.输入格式不对,则提示输入错误且该输入不算:

题目内容:
从键盘输入6位仅由数字0~9组成的密码。用户每输入一个密码并按回车键后,程序给出判断:如果是数字,则原样输出该数字,并提示用户目前已经输入了几位密码,同时继续输入下一位密码;否则,程序提示"error",并让用户继续输入下一位密码。直到用户输入的密码全部是数字为止。

#include
main()
{
    int i=0;
    char a[6];
    printf("Input your password:\n");
    while(i< 6)
    {
       scanf("%c",&a[i]);
       getchar();
       if(a[i]>='0'&&a[i]<='9')
         {
           printf("%c, you have enter %d-bits number\n",a[i],i+1);
           i++;
         }
        else printf("error\n");
    }
}

注1:当不是所有情况都要i++时,用while和do-while更适合,选择格式正确的情况进行i++,同时注意i++的位置:若在a[i]前则此时a[i]没有输入。
注2:每个数输入后还有一个回车符,要在缓冲区清理掉该回车符。可以直接用getchar()。

3.%s用于字符数组的输入输出

题目内容:
写一个程序读入你的姓名,然后每个字母间加一个空格后输出。例如,姓名John显示为J o h n。

**输入格式要求:"%s" 提示信息:“请输入你的姓名:”

#include
main()
{
    char name[20];
    printf("请输入你的姓名:");
    scanf("%s",name);
    int i=0;
    for(;i<strlen(name);i++)
    {
        printf("%c ",name[i]);
    }
}

注:字符数组可以单独以c的形式输出,也可以整体以s形式输出。

4.各种数据类型存储的形式:

负数:以二进制补码形式
整型数:以二进制形式
实型数:以浮点形式
字符:以其对应的ASCⅡ码的二进制形式
字符串:其中的每个字符都是以其对应的ASCⅡ码的二进制形式

5.将从某处开始的字符前移:

for (i = len; i>=0; i--)
    {
        if (s[i] == c)
        {
            for (j = i; j < len; j++)
            {
                s[j] = s[j + 1];
            }
        }
    }

注:从后往前运算,遇到符合条件的字符就用循环将其后的字符前移

6.记得加头文件:

字符串中常见的有

7.如果是字符串数组,要定义为char:

char a[N];

8.实现字符串数组的逆序存放:

法一:用两个函数参数来实现

#include
#include
void Inverse(char str[], char ptr[])
{
    int i,j;
    for(i=0,j=strlen(str)-1;i<strlen(str),j>=0;i++,j--)
    {
        ptr[i]=str[j];
    }
}
main()
{
    char str[30],ptr[30]={0};
    printf("Input a string:");
    gets(str);
    Inverse(str,ptr);
    printf("Inversed results:%s\n",ptr);
}

法二:用一个函数参数利用数的交换实现

#include
#include
#define N 80
void Inverse(char str[]);
main()
{
    char str[N];
    printf("Input a string:\n");
    gets(str);
    Inverse(str);
    printf("Inversed results:\n");
    printf("%s\n",str);
}
void Inverse(char str[])
{
    int a = strlen(str), i;
    char temp;
    for(i = 0;i < a/2; i++)
    {
        temp = str[i];
        str[i] = str[a - 1 - i];
        str[a - 1 - i] = temp;
    }
}

你可能感兴趣的:(c语言)