今日、私はchar * stringと親しみを持とうとしていましたが、失敗しているようです:) strcmp / strncmp / strcpy関数を呼び出すたびに、ソースが破損します...
これがスニペットです
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student
{
int UID;
char name[20];
char surname[20];
};
char * getString(int minChars, int maxChars);
struct student * myStud;
int main(int argc, char** argv) {
myStud = (struct student*)malloc(sizeof(struct student));
while(1)
{
printf("\nEnter new name: ");
strcpy(myStud->name,getString(1,19));
printf("\n The values is now %s",myStud->name);
}
return (EXIT_SUCCESS);
}
char * getString(int minChars, int maxChars)
{
char string[maxChars+1];
scanAgain:
scanf("%s",&string);
if(strlen(string)<minChars)
{
printf("\nToo few symbols, try again: ");
goto scanAgain;
}
if(strlen(string)>maxChars)
{
printf("\nToo many symbols, try again: ");
goto scanAgain;
}
string[maxChars]='\0';
return(string);
}
出力:
Enter new name: Alekasdasd
The values is now Alekasda�#
Enter new name:
私はただの初心者なので、それは非常に単純なものかもしれません...そうではないかもしれません。ちなみに、LinuxとnetbeansをSDKとして使用し、gccをコンパイラーとして使用しています。