当前位置: 首页> 教育> 锐评 > 中国十大网站建设公司排名_移动互联网开发的关注点_推广下载_百度秒收录技术最新

中国十大网站建设公司排名_移动互联网开发的关注点_推广下载_百度秒收录技术最新

时间:2025/7/11 8:25:30来源:https://blog.csdn.net/weixin_55021541/article/details/144791056 浏览次数:0次
中国十大网站建设公司排名_移动互联网开发的关注点_推广下载_百度秒收录技术最新

1.想用这些函数都需要导入头文件

#include<string.h>

2.怎么创建字符串并输入

#define maxsize 100

char a[maxsize+1];//创建字符串,预留一个位置放'\0'

【1】scanf("%s",a);//使用 scanf 函数读取不带空格的字符串

【2】fgets(a, sizeof(a), stdin);//使用 fgets 函数读取带空格的字符串

【3】gets(a);//使用 gets 函数读取带空格的字符串(尽量不要用,会发生缓冲区溢出)

【4】getchar(a);//使用 getchar 函数逐字符读取字符串(不带空格)

3.怎么输出

【1】使用%s格式控制符输出字符串:

printf("%s", str);

【2】使用puts函数输出字符串,自动换行

puts(str);

【3】使用fputs函数输出字符串,不自动换行

fputs(str, stdout);

【4】逐个字符输出字符串

int i = 0;
while (str[i] != '\0') {putchar(str[i]);i++;
}

3.strncpy 函数和strtok() 函数

【1】strncpy函数,char *strncpy(char *dest, const char *src, size_t n);

strncpy 会从 src 复制最多 n 个字符到 dest,包括空字符(\0)。如果 src 的长度小于 n,则 dest 将被填充空字符直到 n 个字符。

【2】strtok 函数,char *strtok(char *str, const char *delim);

strtok 会根据 delim 中的字符分割 str 字符串,并返回分割后的第一个(或下一个)子串。每次调用 strtok 后,它都会修改 str 字符串,因此它是不安全的,不推荐在多线程环境中使用。

【3】代码:

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

#define MAX_STRING_LENGTH 1024
#define MAX_SUBSTRINGS 100

int main() {
    char input[MAX_STRING_LENGTH];
    char token[MAX_STRING_LENGTH];
    char output[MAX_SUBSTRINGS][MAX_STRING_LENGTH] = {0};
    char *context;
    int substring_index = 0;
    char delimiter[] = "-";

    // 获取输入字符串
    printf("Enter a string separated by '-': ");
    fgets(input, MAX_STRING_LENGTH, stdin);
    input[strcspn(input, "\n")] = 0; // Remove the newline character

    // 使用 strtok 分割字符串
    char *token_ptr = strtok(input, delimiter);
    while (token_ptr != NULL) {
        strncpy(token, token_ptr, MAX_STRING_LENGTH - 1); // 复制子串
        token[MAX_STRING_LENGTH - 1] = '\0'; // 确保字符串以空字符结尾

        // 检查子串长度是否超过了数组的界限
        if (strlen(token) >= MAX_STRING_LENGTH) {
            printf("Error: Substring exceeds maximum length.\n");
            return 1;
        }

        // 将子串复制到输出数组中
        strncpy(output[substring_index], token, strlen(token) + 1); // +1 以复制 '\0'
        substring_index++;

        // 获取下一个子串
        token_ptr = strtok(NULL, delimiter);
    }

    // 输出结果
    printf("Original substrings:\n");
    for (int i = 0; i < substring_index; i++) {
        printf("%s\n", output[i]);
    }

    return 0;
}

关键字:中国十大网站建设公司排名_移动互联网开发的关注点_推广下载_百度秒收录技术最新

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: