C语言.字符串变量

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char * title= "web 数学 算法 是不是空间不够长";

int str_comparer()
{
    // 字符串是个指向字符串开头的指针
    char * tt1 = "aac";
    char * tt2 = "aa";

    // 字符串可以直接转换成整数, 前面加个*, 输出内容的时候倒不用*
    printf("Text \"%s\" to Int: %d\n",tt1,*tt1);
    printf("Text \"%s\" to Int: %d\n",tt2,*tt2);

    // 比较字符串函数会返回一个数字, 是对应位置第一个不同字母ASCII的差
    int cmp = strcmp(tt1,tt2);
    // 只有这个函数用到了<string.h>

    return cmp;
}

void asciiList()
{
    int ascii_start = 32;
    int ascii_end = 127;
    int ii;
    for (ii=ascii_start;ii<=ascii_end;ii++) 
    {
        char * nn;
        if (ii%16==0) {
            nn = "\n";
        } 
        else {
            nn = "  ";
        }

        printf("%d: %c %s",ii,ii,nn);

    }
    puts("\n\n");
}


int main()
{
    printf("\n这应该是字符串\"%s\"的第一个字母的ascii吧? %c,%d\n",title,*title,'w');
    title = "\n比较两个字符串";
    // 所以,在操作指针变量的时候,声明时用*,赋值和修改不用* (*title)直接写变量名 (title),调用也不加*,如果加*,则调用的是第一个字符。
    printf("\nTitle: %s\n\n\n",title);

    int res = str_comparer();

    printf("\nCompare(tt1,tt2): %d\n",res);
    // 所以,比较的不是长度,而是位置。

    title = "\n字母排行";
    printf("\n%s\n",title);
    asciiList();

    return 0;
}


posted @ 2023-08-02 12:37  etfolin  阅读(46)  评论(0编辑  收藏  举报