小编Gri*_*han的帖子

Strtok用法,代码无效

我正在尝试使用strtok().以下是我写的一段代码.它不起作用,但", '"无限打印.

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

int main(){
char str[]="this, by the way, is a 'sample'";
char *tokens;
tokens = strtok(str, ", '");
//printf("%s\n",tokens);
//printf("%s\n", str);
while(tokens!=NULL)
{
    printf("%s\n", tokens);
    tokens = (NULL, ", '");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)

以下是strtok()手册页中的代码,完全正常.

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

int main ()
{
  char str[] ="- This, a sample string.";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,.-");
  while (pch != NULL)
  {
    printf …
Run Code Online (Sandbox Code Playgroud)

c strtok

-1
推荐指数
1
解决办法
1176
查看次数

无法理解三元运算符的行为

以下程序的输出是: 3 1 3

int main()
{
    int a = 0, b = 1, c = 3;
    *((a) ? &b : &a) = a ? b : c; // Couldn't understand expression
    printf("%d %d %d \n", a, b, c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

三元运算符如何在此处输出此输出?

c ternary

-1
推荐指数
1
解决办法
145
查看次数

如何使用%f说明符打印整数数字?

#include<stdio.h>
main()
{
   int a = 66;
   printf("%f", a);
}
Run Code Online (Sandbox Code Playgroud)

打印0.0000作为答案,为什么?

而且它被%f替换%c为印刷B.我没理由.

请解释 !!

c

-1
推荐指数
1
解决办法
91
查看次数

Python - 创建一个在字母之间添加" - "的函数

我正在尝试创建一个函数f(x),它会"-"在每个字母之间添加一个:

例如:

f("James")
Run Code Online (Sandbox Code Playgroud)

应输出为:

J-a-m-e-s-
Run Code Online (Sandbox Code Playgroud)

如果您可以使用简单的python函数,我会喜欢它,因为我是编程新手.提前致谢.另外,请使用"for"功能,因为这是我正在努力学习的内容.

编辑:

是的,我确实想要"-"之后的"s".

python

-1
推荐指数
2
解决办法
1193
查看次数

如何以二进制格式不写()

我有一个结构,我想写一个常规文件作为一个记录,用逗号分隔字段.例如

    struct A {
      int a;
      int b;
   } test;
Run Code Online (Sandbox Code Playgroud)

给定test.a=1test.b = 2,常规文件将具有相应的1,2一行记录.另一个要求是,我想用一个系统调用来编写整个结构.所以,我创建了一个char buffer[10],将int a,b的值存入缓冲区,用逗号分隔和换行符,并使用Linux系统write()调用来写缓冲区.

问题是记录最终在文件中以二进制形式出现.这是直观的,因为我从变量中取走了"类型",我将它们存储在char数组中.我可以使用标准的io,但我想学习,如何通过标准的Linux系统调用以及概述的约束来实现预期的结果.我怎样才能保持变量的"典型性".通过类型我的意思是,如果变量是int类型,则常规文件应该具有人类可读的数字.

c linux

-2
推荐指数
1
解决办法
182
查看次数

从用户获取字符串时出现分段错误

码:

int main()
{
  char *name=NULL;
  int n;
  printf("\nenter the string\n");
  scanf("%s",name);
  n=strlen(name);
  printf("%d",n);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到分段错误.代码有什么问题?我已经包括stdio.h,stdlib.h,string.h.

c segmentation-fault

-2
推荐指数
1
解决办法
259
查看次数

(null == var)和(var == null)之间有什么区别吗?

我想知道两个条件表达式null == varvar == nullif语句中的Java 之间的区别 .

java null if-statement

-2
推荐指数
1
解决办法
259
查看次数

什么是scanf()中的<array name> + <constant>?

好吧,我从朋友那里得到了一个代码.
我曾几次看过代码.
我根本不理解它的过程和一些奇怪的语法.

#include <stdio.h>
int main(){
    int n, input[1000], i, j, k, max = 0;
    scanf("%d", &n);
    for(i = 0; i < n; i++){
       scanf("%d", input + i);
       if(input[i] > max) 
          max = input[i];
    }
   for(i = 1; i <= max; i++){
       for(j = 0; j < n; j++){
           if(input[j] + i <= max)
             for(k = 0; k < input[j] * 2; k++) 
                putchar(' ');
           else{
             for(k = 0; k < input[j]; k++){
                if(max - i == k)
                    putchar('/'); …
Run Code Online (Sandbox Code Playgroud)

c arrays pointers

-2
推荐指数
1
解决办法
116
查看次数

两个If表达式之间的区别?

以下是什么区别: -

  if(source[i] != ' ' && source[i+1] != ' ')        //1
Run Code Online (Sandbox Code Playgroud)

  if(!( source[i] == ' ' && source[i+1] == ' '))     //2
Run Code Online (Sandbox Code Playgroud)

c if-statement

-3
推荐指数
1
解决办法
82
查看次数

C程序不打印

我写了以下程序:

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

void inttobusn(int val, int n, char* bus)
{
    int i;
    unsigned int digit;

    for (i=0; i < n; i++) {
            digit = pow(2, (n-1-i));
            if (digit <= val) {
                    val -= digit;
                    bus[i] = '1';
                    //printf("hello %c",bus[i]);
            } else {
                    bus[i] = '0';
            }       
     }
} 
main(){
  char* bus;
  inttobusn(37,8,bus);
  int i=0;
  //printf("%s",bus);
  for(i=0;i<12;i++){
      printf("%c",bus[i]);
  }
}
Run Code Online (Sandbox Code Playgroud)

但在运行时它不会打印数组的元素bus.它不打印任何东西.我无法弄清楚出了什么问题.有人可以指出吗?

c function

-4
推荐指数
1
解决办法
1777
查看次数

如何编译if语句编译

main()    
{

   int k = 5;

    if(++k <5 && k++/5 || ++k<=8);  // how to compiler compile this statement 
  print f("%d",k);
}
Run Code Online (Sandbox Code Playgroud)

//这里的答案是7但是为什么?

c c++ compiler-construction

-5
推荐指数
1
解决办法
205
查看次数