如果传入的字符串(第一个参数)的长度大于传入的值(第二个参数),请在这个位置截断它, 并在后面加上 `...`,然后返回结果。

function truncateString(str, num) {
  let a = "";
  if(str.length<=num){
    return str;
  }else{
    for(let i = 0;i<num;i++){
      a += str[i];
    }
    a += "...";
  }
  return a;
}
console.log(truncateString("A-tisket a-tasket A green and yellow basket", "A-tisket a-tasket A green and yellow basket".length));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 下面是实现该功能的 C 语言函数: ```c void print(char *s, int n) { int len = strlen(s); if (len > n) { s[n] = '\0'; // 截断字符串 } printf("%s\n", s); } ``` 若只传一个字符数组参数,调用方式为: ```c print("hello, world!", 10); ``` 若再传入一个整型参数,则调用方式为: ```c print("hello, world!", 5); ``` ### 回答2: 下面是用C语言编写的函数print,实现上述要求: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> void print(char *s, int n) { int len = strlen(s); if (len > n) { char *temp = malloc((n+1) * sizeof(char)); strncpy(temp, s, n); temp[n] = '\0'; printf("%s\n", temp); free(temp); } else { printf("%s\n", s); } } int main() { char str1[] = "Hello World!"; char str2[] = "Hello"; char str3[] = "Hi"; print(str1, 10); // 打印前10个字符 print(str2, 10); // 打印整个字符串 print(str3, 5); // 打印整个字符串 return 0; } ``` 然后将上述代码保存为.c文件,并通过编译器对其进行编译运行。输出结果为: ``` Hello Worl Hello Hi ``` 以上代码中,函数`print`接受两个参数:一个是字符串`s`,另一个是整数`n`。首先通过`strlen`函数获取字符串`s`的长度`len`,然后进行判断: - 若`len`大于`n`,则需要截取前`n`个字符并输出。首先分配一个大小为`(n+1)`的字符数组`temp`,然后使用`strncpy`函数将前`n`个字符拷贝到`temp`中。注意,这里需要额外给`temp`数组的最后一个元素加上`\0`作为字符串的结束符。最后,使用`printf`函数输出`temp`并释放动态分配的内存。 - 若`len`小于等于`n`,则直接输出整个字符串`s`。 在`main`函数中,我们提供了三个示例调用`print`函数的例子进行测试。 ### 回答3: 下面是用C语言编写的函数print,实现了题目要求的功能: ``` #include <stdio.h> #include <string.h> void print(char* s, int n) { int len = strlen(s); if (len > n) { for (int i = 0; i < n; i++) { printf("%c", s[i]); } } else { printf("%s", s); } } int main() { char s[100]; int n; printf("输入字符串: "); scanf("%s", s); printf("输入n的: "); scanf("%d", &n); print(s, n); return 0; } ``` 该函数首先使用strlen函数获取字符串s的长度,然后通过与n的比较,确定打印的字符数。 若s的长度大于n,则使用for循环打印s的前n个字符。 若s的长度小于等于n,则使用printf函数直接打印整个字符串s。 在main函数中,先读入字符串s和整数n的,然后调用print函数进行打印。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值