Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Nu en fråga angående konkatenering

Postades av 2005-07-25 13:18:08 - Johanna Lundberg, i forum c++, Tråden har 3 Kommentarer och lästs av 1012 personer

försöker nu skriva in en mening eller ett ord. Tillsammans med ett nummer ex 3 så ska meningen/ordet konkateneras med sig själv 3 ggr.
Ex hej tillsammans med int =3 blir hejhejhej.

Har försökt använda strcat och även append..
Men det verkar bara funka om man har två olika strängar. Hur får jag programmet att skriva ut mitt ord/mening så många gånger jag vill?

Tack.
Johanna


Svara

Sv: Nu en fråga angående konkatenering

Postades av 2005-07-25 13:53:08 - Peter Larsson

Om du vill konkatenera ordet tre gånger i en annan sträng kan du göra så här:

char szText[] = "Hej";
char szBuf[256];

strncpy( szBuf, szText, sizeof(szBuf) );
strncat( (char*)(szBuf + strlen(szBuf)), szText, (size_t)(sizeof(szBuf) - strlen(szBuf)) );
strncat( (char*)(szBuf + strlen(szBuf)), szText, (size_t)(sizeof(szBuf) - strlen(szBuf)) );

cout << szBuf;


Det gäller bara att se till att varje ny insättning av ordet sker efter föregående text.

Eller om du bara vill skriva ut ordet valfritt antal gånger kan du göra så här:

for( int i = 0; i < 3; i++ )
{
	cout << szText;
}


/Peter


Svara

Sv:Nu en fråga angående konkatenering

Postades av 2005-07-25 14:17:19 - Johanna Lundberg

Tack Peter.

Det fungerade utmärkt!

/ Johanna


Svara

Sv:Nu en fråga angående konkatenering

Postades av 2005-07-25 14:54:44 - Martin Adrian

Peter,

varför alla dessa konstiga kopieringar?
Det är iochförsig bra att kolla att man inte skriver över bufferten men det är väl bättre att kolla innan istället så man kan göra något åt det. I ditt fall resulterar det ju bara i en icke-terminerad sträng som för eller senare lär leda till en crash

if (strlen(szText)*3 >= sizeof(szBuf))
  // ge något lämpligt felmeddelande
else {
  strcpy(szBuf, szText);
  strcat(szBuf, szText);
  strcat(szBuf, szText);
}


Dessutom är väl det här ett C++ forum

std::string konkat(const std::string& str, int n) {
  std::string ret;
  for (ii = 0; ii < n; ++ii)
    ret += str;
  return ret;
}

int main() {
  cout << konkat("ABC", 4) << std::endl;
}


>strncat( (char*)(szBuf + strlen(szBuf)), szText, (size_t)(sizeof(szBuf) - strlen(szBuf)) );
Hur kom du fram till denna rad? Resultatet blir iochförsig korrekt men sättet tyder på att det är mera tur än skicklighet.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
5 726
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies