我正在尝试使用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) 以下程序的输出是: 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)
三元运算符如何在此处输出此输出?
#include<stdio.h>
main()
{
int a = 66;
printf("%f", a);
}
Run Code Online (Sandbox Code Playgroud)
打印0.0000作为答案,为什么?
而且它被%f替换%c为印刷B.我没理由.
请解释 !!
我正在尝试创建一个函数f(x),它会"-"在每个字母之间添加一个:
例如:
f("James")
Run Code Online (Sandbox Code Playgroud)
应输出为:
J-a-m-e-s-
Run Code Online (Sandbox Code Playgroud)
如果您可以使用简单的python函数,我会喜欢它,因为我是编程新手.提前致谢.另外,请使用"for"功能,因为这是我正在努力学习的内容.
编辑:
是的,我确实想要"-"之后的"s".
我有一个结构,我想写一个常规文件作为一个记录,用逗号分隔字段.例如
struct A {
int a;
int b;
} test;
Run Code Online (Sandbox Code Playgroud)
给定test.a=1和test.b = 2,常规文件将具有相应的1,2一行记录.另一个要求是,我想用一个系统调用来编写整个结构.所以,我创建了一个char buffer[10],将int a,b的值存入缓冲区,用逗号分隔和换行符,并使用Linux系统write()调用来写缓冲区.
问题是记录最终在文件中以二进制形式出现.这是直观的,因为我从变量中取走了"类型",我将它们存储在char数组中.我可以使用标准的io,但我想学习,如何通过标准的Linux系统调用以及概述的约束来实现预期的结果.我怎样才能保持变量的"典型性".通过类型我的意思是,如果变量是int类型,则常规文件应该具有人类可读的数字.
码:
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.
我想知道两个条件表达式null == var和var == nullif语句中的Java 之间的区别 .
好吧,我从朋友那里得到了一个代码.
我曾几次看过代码.
我根本不理解它的过程和一些奇怪的语法.
#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) 以下是什么区别: -
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) 我写了以下程序:
#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.它不打印任何东西.我无法弄清楚出了什么问题.有人可以指出吗?
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但是为什么?