qq_24432057 2015-11-22 07:39 采纳率: 42.9%
浏览 1564

C语言字符串的问题字符单元化

#define STDC_WANT_LIB_EXT1 1
#include
#include
#include
int main(void)
{
char delimiters[] = " \".,:;!?)(";
char buf[100];
char str[1000];
char * ptr = NULL;
str[0] = '\0';
size_t str_len = sizeof(str);
size_t buf_len = sizeof(buf);
printf("Enter some prose that is less than %zd charaters.\n"
"terminate input by entering an empty line:\n",str_len);
while(true)
{
if(!gets_s(buf, buf_len))
{
printf("Error reading string.\n");
return 1;
}
if(!strnlen_s(buf, buf_len))
break;
if(strcat_s(str, str_len, buf))
{
printf("Maximum permitted input length exceeded.\n");
return 1;
}

  }
printf("The words in the prose that you entered are:\n",str);
unsigned int word_count = 0;
char * pWord = strtok_s(str, &str_len, delimiters, &ptr);
if(pWord)
{
    do
    {
        printf("%-18s",pWord);
        if(++word_count % 5 ==0)
            printf("\n");
        pWord = strtok_s(NULL, &str_len, delimiters, &ptr);
    }while(pWord);
    printf("\n%u words found.\n", word_count);

}else
    printf("No word found.\n");
return 0;

}
问题1: str[100]和buf[1000]是什么?
问题2: str[0] = '\0';是什么意思?
问题3: while循环在干什么?
问题4:strtok_s()工作流程?
望各位大神指教!

  • 写回答

2条回答 默认 最新

  • Robot-C 2015-11-22 07:46
    关注

    C语言中的字符类型为char,C语言中对于字符串的处理则是通过字符数组实现的。和一般字符数组的区别在于,每一个字符串(本质上来说应该是字符数组)的最后一个元素都是'\0',根据这个特点,C语言便可以判断字符串的结束。
    1、字符串和数的转换
    1.1 函数原型
    double atof(const char *nPtr);将字符串nPtr转换为double
    int atoi(const char......
    答案就在这里:C语言中的字符和字符串
    ----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!