fightclub 发表于 2022-9-24 10:12:36

C语言对字符串的方法中有没有类似于python中的rjust方法

如题

人造人 发表于 2022-9-24 11:54:20

没见过这个函数,如果没有的话,那就自己写一个
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *rjust(const char *str, size_t width, char ch) {
    size_t len = strlen(str);
    if(len >= width) return strdup(str);
    char *result = malloc(width + 1);
    char *p = result;
    size_t count = width - len;
    while(count--) *p++ = ch;
    for(size_t i = 0; str; ++i) {
      *p++ = str;
    }
    *p = '\0';
    return result;
}

int main(void) {
    {
      char *s = rjust("123", 5, '0');
      puts(s);
      free(s);
    }
    {
      char *s = rjust("123", 3, '0');
      puts(s);
      free(s);
    }
    {
      char *s = rjust("123", 2, '0');
      puts(s);
      free(s);
    }
    {
      char *s = rjust("123", 10, '0');
      puts(s);
      free(s);
    }
    return 0;
}

hveagle 发表于 2022-9-24 13:36:54

如什么题

fightclub 发表于 2022-9-24 13:55:20

hveagle 发表于 2022-9-24 13:36
如什么题

如标题哈哈哈

fightclub 发表于 2022-9-24 14:03:44

人造人 发表于 2022-9-24 11:54
没见过这个函数,如果没有的话,那就自己写一个

啊那如果要重新定义而且那么长的话有点不太合理诶{:9_241:}我那道题是说输入n然后输出斐波那契数列的前n个,而且必须遵循一个数字是右对齐,占8个位置的,且需要8个数字为一排。这样做感觉代码会很多

人造人 发表于 2022-9-24 14:13:23

fightclub 发表于 2022-9-24 14:03
啊那如果要重新定义而且那么长的话有点不太合理诶我那道题是说输入n然后输出斐波那契数列的前n ...

编程语言越高级,基本上代码量就越少,你要追求代码量的话,去用高级语言
如果你追求代码运行速度,那就选C语言或者汇编语言
如果你还要求存储空间占用的话,那就选汇编语言
看你追求什么,就用对应的工具
我主修的C/C++,但是要写爬虫,我肯定不用C/C++,我会用python写爬虫
不要用java写操作系统,也不要用汇编语言做语音识别
就是这样,用合适的工具去完成你的工作

fightclub 发表于 2022-9-24 16:42:19

人造人 发表于 2022-9-24 14:13
编程语言越高级,基本上代码量就越少,你要追求代码量的话,去用高级语言
如果你追求代码运行速度,那就 ...

Okok,主要是这是老师的作业,我大一的,那么长不太合适哈哈哈,那就只能这样咯
页: [1]
查看完整版本: C语言对字符串的方法中有没有类似于python中的rjust方法