Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Concatenare string in limbaj C

- - - - -
  • Please log in to reply
4 replies to this topic

#1
Nitenryuu

Nitenryuu

    New Member

  • Grup: Junior Members
  • Posts: 11
  • Înscris: 23.09.2018
Buna ziua, se da urmatorul program
// Program 6.4 Joining strings
#define __STDC_WANT_LIB_EXT1__ 1 // Make optional versions of functions available
#include <string.h> // Header for string functions
#include <stdio.h>
int main(void)
{
char preamble[] = "The joke is:\n\n";
char str[][40] = {
"My dog hasn\'t got any nose.\n",
"How does your dog smell then?\n",
"My dog smells horrible.\n"
};
unsigned int strCount = sizeof(str)/sizeof(str[0]);
// Find the total length of all the strings in str
unsigned int length = 0;
for(unsigned int i = 0 ; i < strCount ; ++i)
length += strnlen_s(str[i], sizeof(str[i]));
// Create array to hold all strings combined
char joke[length + strnlen_s(preamble, sizeof(preamble)) + 1];
if(strncpy_s(joke, sizeof(joke), preamble, sizeof(preamble)))
{
printf("Error copying preamble to joke.\n");
return 1;
}
// Concatenate strings in joke
for(unsigned int i = 0 ; i < strCount ; ++i)
{
if(strncat_s(joke, sizeof(joke), str[i], sizeof(str[i])))
{
printf("Error copying string str[%u].", i);
return 2;
}
}
printf("%s", joke);
return 0;
}

Programul acesta este preluat din cartea Beginning of C , Volume 5. Ei bine cand dau compile imi apar urmatorile erori pe care nu mi le pot explica :
undefined reference to `strncpy_s'|
undefined reference to `strnlen_s'|
undefined reference to `strncat_s'|
In carte pentru a afla lungimea , a copia si a concatena acestea sunt definite in carte . Folosesc ca si compiler Code Blocks . Ma puteti ajuta cu o explicatie in legatura cu eroarea aceasta ? Multumesc anticipat

#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Incearca sa activezi -std=c11 daca n-ai un compilator foarte vechi. Sau Visual Studio daca esti sub Windows

#3
modoran

modoran

    Senior Member

  • Grup: Senior Members
  • Posts: 8,395
  • Înscris: 08.02.2011
1. Aia e eroare de linker, lipseste libraria unde-i implementata functia respectiva.

2. Code::Block nu-i compilator, folosesti GCC drept compilator sau altceva ?

#4
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
N-am intalnit sa foloseasca cineva CodeBlocks cu altceva decat gcc

#5
Nitenryuu

Nitenryuu

    New Member

  • Grup: Junior Members
  • Posts: 11
  • Înscris: 23.09.2018
Da folosesc GCC pe CodeBlocks , aveam selectat varianta C/C++17, am selectat pentru -std=C11 dar tot aceeasi eroare o am. Exista vreun echivalent pentru limbajul 2017 sau ceva de genu?

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate