我正在尝试创建一个类似strlen()string.h 的函数
它给了我错误 can not convert char* to char
#include<stdio.h>
#include<conio.h>
int xstrlen(char string);
void main(void) {
char string[40];
puts("Enter string:");
gets(string);
printf(" %s is the length of %d", string, xstrlen(string));
}
int xstrlen(char string[]) {
int i;
for (i=0; ; i++) {
if (string[i] == '\0')
break;
}// for ends
return i;
}
Run Code Online (Sandbox Code Playgroud) 我在这段代码中遇到两个小问题,但我无法得到它们.我已经提到了编译器给出错误的位置.下面给出了两个:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define SIZE 100
int count;
void menu(void);
void input(int[]);
void print(int[]);
void insert(int[]);
void delete_element(int arr[]);
void search(int arr[]);
void main(void)
{
int arr[SIZE];
char choice;
while(1)
{
menu();
choice=getche();
switch (choice)
{
case'1':input(arr);break;
case'2':delete_element(arr);break;
case'3':insert(arr);break;
case'4':print(arr);break;
case'5':search(arr);break;
case'6':exit(0);//from stdlib.h
default:printf("Enter valid choice!");
}
getch();
}
void print(int arr[])
{ // says declaration syntax error here
int i;
for(i=0;i<count ;i++)
printf("element is %d",arr[i]);
}
void input(int arr[])
{
if(count<SIZE)
for(count=0; ;count++)
{
printf("Enter element %d:",i+1);
scanf("%d"&arr[i]); …Run Code Online (Sandbox Code Playgroud) 我已经被赋予了一个任务,通过使用宏来将小写字符转换为大写.问题是我从未被引入宏.我只知道它的名字#define名称大小..请任何人都可以指导我这个问题
我做了一个递归函数来找到一个数字的素因子,但是它有一个让turbo c退出的错误.请帮忙
#include<stdio.h>
#include<conio.h>
int prime(int num);
int primefactor(int num,int i);
void main(void)
{
int num;
printf("Enter a number whose prime factors are to be calculated:");
scanf("%d",&num);
primefactor(num,i);
i=num
getch();
}
int primefactor(int num,int i)
{
if(i==2)
return 1;
if(num%i==0)
{
if(prime(num))
{
printf(",%d",num);
num=num/i;
i++;
}
}
i--;
primefactor(num,i);
return 0;
}
int prime(int num)
{
int i,flag;
for(i=2;i<num;i++)
{
if(num%i==0)
flag=0;
}
return flag;
}
Run Code Online (Sandbox Code Playgroud) /*编写程序以按升序对数组中输入的名称进行排序*/当我在数组中输入名称时程序停止.任何人都知道为什么?
#include<stdio.h>
#include<string.h>
void main(void)
{
/* write a program to sort names entered in an array in ascending order */
int in,out,i,x;
char temp[30],string2d[5][30];
printf("ENTER NAMES IN THE ARRAY:");
for(i=0;i<5 ;i++)
{
gets(string2d[i]);
}
for(out=0;out<5-1;out++)
{
for(in=out+1;out<5;in++)
{
x=strcmpi(string2d[out],string2d[in]);
if(x>1)
{
strcmpi(temp,string2d[out]);
strcmpi(string2d[out],string2d[in]);
strcmpi(string2d[in],temp);
}
}
}
for(i=0;i<5;i++)
{
puts(string2d[i]);
}
getch();
}
Run Code Online (Sandbox Code Playgroud)
我已经看到了注释并对实际程序进行了更改,但程序仍然在循环和i之间循环
我创建了一个删除空格的程序,并通过预处理程序指令使字符串大写.不会更改为大写
#include <stdio.h>
#include <conio.h>
# define TOUPPER(x) (x-32)
void main(void)
{
int i,j;
char str[100],*p;
clrscr();
printf("Enter the string:\n");
gets(str);
for(i=0; ;i++)
{
if(str[i]=='\0')
break;
if(str[i]==' ')
{
for(j=i; ;j++)
{
str[j]=str[j+1];
if(str[j]=='\0')
break;
}
}
if(str[i]<='a'||str[i]>='z')
{
*p=str[i];
TOUPPER('p');
}
}
puts(str);
getch();
}
Run Code Online (Sandbox Code Playgroud) 我已经尝试了很多东西来学习链表.但我所有的努力都被浪费了.请有人帮我通过提供他/她自己的代码来理解链表吗?在此先感谢.
代码在许多地方说"无效的间接".请帮忙.
int main()
{
char *s1,*s2,*position;
printf("Enter string:\n");
gets(s1);
printf("Enter word to find:\n");
gets(s2);
*position=ststr(*s1,*s1);
if(*position)
printf("word is found at %c loc\n",*position);
else
printf("word not found");
getch();
return 0;
}
char *strstr(char *s1,char *s2)
{
int flag=1;
char i,j;
for(i=0; ;i++)
{
if(*s1[i]==*s2[0])
for(j=i;*s2;j++)
{
if(*s1[j]!=*s2[j])
flag=0;
}
}
if(flag)
return i;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud) 为什么2d数组的内存是由两个参数访问的,而不仅仅是一个(忽略指针).为什么内存图是按行和列而不是直的(水平),为什么它说为什么呢2d数组是一个数组的数组,但我不明白.